https://www.tensorflow.org/federated/
-
TensorFlow連合(TFF)は、分散データ、機械学習および他の計算のためのオープンソースフレームワークです。私たちは、TFFを促進することで開発した共同学習(FL) オープンな研究と実験を、FLは、私たちは複数のクライアントがグローバルトレーニングモデルとローカルに保存されたトレーニングデータを共有渡って参加することを可能にする機械学習法です。例えば、FLは、訓練するために使用されている携帯電話のキーパッドの予測モデルを、サーバーに敏感な入力データをアップロードしません。
開発者は、彼らのモデルとシミュレーションデータが含ま共同学習アルゴリズムのTFFの援助だけでなく、新しいアルゴリズムを使って実験を使用することができます。TFFは、ビルディングブロックはまた、例えば、分散データ解析重合非学習計算を達成するために使用することができる提供します。TFFインターフェースは二層に分割することができます。
-
連合学習(FL)API
この層は、共同訓練および評価を可能にするために、より高次のインタフェースのセットを提供TensorFlowモデル既存の実装に適用される現像剤を含みます。 -
連合コア(FC)API
システムの中核は、関数型プログラミング強く型付けされた環境を組み入れTensorFlow分散通信事業者、簡潔新しい関節アルゴリズムの式を用いて下位インタフェースのセットです。この層はまた、私たちの共同学習のための基礎です。 -
TFFを使用すると、開発者は宣言異なるランタイム環境にデプロイします関節の計算を、表現することができます。TFFは、実験のための単一のシミュレーション実行時間を含みます。ご覧ください チュートリアルを 、そして自分自身でそれを試してみてください!
6 。移動は、インポート範囲
インポートtensorflowをとしてのTF
インポートtensorflow_federated としてTFF
からtensorflow_federated 。パイソン。例は、インポートmnistの
TFを。COMPAT 。V1 。enable_v2_behavior ()
#ロードシミュレーションデータ。
ソース、_ = TFF 。シミュレーション。データセット。emnist 。LOAD_DATA ()
デフたclient_data (N ):
データセット= 源。create_tf_dataset_for_client (ソース。client_ids [ N ])
戻りmnist 。keras_dataset_from_emnist (データセット)。リピート(10 )。バッチ(20 )
#トレーニングに参加するクライアントデバイスのサブセットを選択してください。
train_data = [ たclient_data (N )用のn における範囲(3 )]
#TFFは、データがどのように見えるかを知っているように、データの単一のバッチをつかみます。
sample_batch = TF 。巣。map_structure (
ラムダX :X 。numpyの()、ITER (train_data [ 0 ])。次の())
TFFで使用するため#ラップKerasモデル。
デフmodel_fn ():
リターンTFF 。学習。from_compiled_keras_model (
mnist 。create_simple_keras_model ()、sample_batch )
#選択したクライアントデバイスと訓練の数ラウンドをシミュレートします。
トレーナー= TFF 。学習。build_federated_averaging_process (model_fn )
状態= トレーナー。初期化()
のための_ 中範囲(5 ):
状態、メトリック= トレーナー。次の(状態、train_data )
プリント(メトリクス。損失)