MLエンジンの実験で分散テンソルフロー実験でこのtutorialを完了しました。config.yamlファイルで使用するSTANDARD_1
層の代わりに独自のカスタム層を定義しようとしています。 tf.estimator.Estimator
APIを使用している場合は、任意のサイズのカスタム層を作成するために追加のコード変更が必要ですか?たとえば、10個のワーカーノードに10,000バッチを配布すると、各ノードは約1,000バッチで動作します。これは、以下のconfig.yamlファイルがカスタム分散MLエンジン実験に必要なコード変更
trainingInput:
scaleTier: CUSTOM
masterType: complex_model_m
workerType: complex_model_m
parameterServerType: complex_model_m
workerCount: 10
parameterServerCount: 4
ことが可能になることをお勧めこのカスタム設定を使用できるようにmnistのチュートリアルに必要なコードの変更はありますか?チュートリアルで示唆されているように、10人の作業者にX個のバッチを配布することは可能でしょうか?私は他のMLエンジンのサンプルの一部の周りに突いとreddit_tftは、分散訓練を使用することがわかったが、彼らは彼らのトレーナーのパッケージ内runconfig.cluster_spec
独自に定義したように見える。彼らはまた、見積もりのAPIを使用しているにもかかわらずtask.py。それで、追加の設定が必要ですか?私の現在の理解は、Estimator APIを使用する場合(独自の定義されたモデル内でも)、追加の変更を加える必要はないということです。
config.yamlでGPUを使用するように指定している場合、この変更はありますか?このarticleは、Estimator APIのために提案しています。ClusterSpecが正しく構成されている限り、コードの変更は必要ありません。クラスタがCPUとGPUを混在させている場合は、psジョブ名をCPUに割り当て、ワーカージョブ名をGPUに割り当てます。 "しかし、config.yamlはパラメータサーバとワーカーのマシンタイプを特定しているので、ML-Engineではconfig.yamlファイルに基づいてClusterSpecが適切に設定されることを期待しています。しかし、私は、GPUを利用するために必要な変更がないことを確認するml-engineのドキュメントを見つけることができません。
異なる構成の使用を識別するためのいずれかの方法がある場合は最後に、ML-エンジン内の私は疑問に思って? 「10個のワーカーノードに10,000バッチを配布する場合、各ノードは約1,000バッチで動作します。追加のワーカーの使用はほぼ線形であることを示唆していますが、より多くのパラメータサーバが必要かどうかを判断する方法についての直感はありません。十分な数のパラメータサーバがあるかどうかを判断するには、クラウドダッシュボードまたはテンソルボード内のいずれかをチェックできますか?
私は、MNISTの例でコードを変更する必要はないことを理解しています。しかし、 'tf.estimator.Estimator'を使って自分のmodel_fnを定義するとどうなりますか?あなたの応答は 'tf.estimator'を参照し続けますが、これはすべて私の質問のようにtf.estimator.Estimatorにも当てはまるかどうかは分かりません。彼らのドキュメントには、 "分散バージョン作業を行う主な変更点はTF_CONFIG環境変数の使用です。環境変数はgcloudを使用して生成され、ClusterSpecを作成するために解析されます。"それは変化が必要であることを示唆しているようです。 – reese0106
投稿をtf.estimator.Estimatorを参照するように更新しました。また、デバイスセッターについての情報も追加されました。なぜなら、これは魔法を実行するもので、RunConfigのコンシューマーであり、これはTF_CONFIG変数を解析するものです。 – rhaertel80