このチュートリアルでは、GCP で TFF シミュレーションを実行する方法を説明します。
単一のランタイムコンテナでシミュレーションを実行する
1. Cloud SDK をインストールして初期化します。
2. TensorFlow Federated リポジトリを複製します。
$ git clone https://github.com/tensorflow/federated.git
$ cd "federated"
3. 単一のランタイムコンテナを実行します。
ランタイムコンテナを構築します。
$ docker build \ --network=host \ --tag "<registry>/tff-runtime" \ --file "tensorflow_federated/tools/runtime/container/Dockerfile" \ .ランタイムコンテナを公開します。
$ docker push <registry>/tff-runtimeCompute Engine インスタンスを作成します。
Cloud Console で、VM Instances ページに移動します。
Create instance をクリックします。
Firewall セクションで、Allow HTTP traffic と Allow HTTPS traffic を選択します。
Create をクリックして、インスタンスを作成します。
sshでインスタンスに移動します。$ gcloud compute ssh <instance>バックグラウンドでランタイムコンテナを実行します。
$ docker run \ --detach \ --name=tff-runtime \ --publish=8000:8000 \ <registry>/tff-runtimeインスタンスを終了します。
$ exitインスタンスの内部 IP アドレスを取得します。
これは、テストスクリプトのパラメータとして後で使用します。
$ gcloud compute instances describe <instance> \ --format='get(networkInterfaces[0].networkIP)'
4. クライアントコンテナでシミュレーションを実行します。
クライアントコンテナを構築します。
$ docker build \ --network=host \ --tag "<registry>/tff-client" \ --file "tensorflow_federated/tools/client/latest.Dockerfile" \ .クライアントコンテナを公開します。
$ docker push <registry>/tff-clientCompute Engine インスタンスを作成します。
Cloud Console で、VM Instances ページに移動します。
Create instance をクリックします。
Firewall セクションで、Allow HTTP traffic と Allow HTTPS traffic を選択します。
Create をクリックして、インスタンスを作成します。
Compute Engine インスタンスに実験をコピーします。
$ gcloud compute scp \ "tensorflow_federated/tools/client/test.py" \ <instance>:~sshでインスタンスに移動します。$ gcloud compute ssh <instance>クライアントコンテナをインタラクティブに実行します。
ターミナルに "Hello World" という文字列が出力されます。
$ docker run \ --interactive \ --tty \ --name=tff-client \ --volume ~/:/simulation \ --workdir /simulation \ <registry>/tff-client \ bashPython スクリプトを実行します。
ランタイムコンテナを実行しているインスタンスの内部 IP アドレスを使用します。
$ python3 test.py --host '<IP address>'コンテナを終了します。
$ exitインスタンスを終了します。
$ exit