回答

1

總的來說,分佈式TensorFlow方案將正是 - 分佈式TensorFlow,以最小的 - 甚至沒有 - 雲計算的具體變化。 tensorflow.org上分佈式TensorFlow的最佳資源是this tutorial。本教程將向您介紹做事的低級方式。

還有一個更高級的API,目前在contrib中(所以API可能會改變,將在未來版本中移出contrib),這將簡化您爲分佈式培訓編寫的樣板代碼的數量。官方教程是here

一旦您瞭解了常規TensorFlow位(無論是高級API還是低級API),您的代碼中必須存在一些特定元素才能使其在CloudML Engine上運行。對於低級別的TensorFlow API,您需要解析TF_CONFIG環境變量來設置您的ClusterSpec。這在this example(特別參見this代碼塊)中被舉例說明。

更高級別的API的一個優點是,所有的解析已經爲你照顧。你的代碼應該一般工作。見this example。重要的一點是,您需要使用learn_runner.run()(請參閱this一行),這將在本地和雲中工作以訓練您的模型。

當然,還有其他的框架,例如TensorFX

在適當地構建了代碼之後,只需選擇適當的scale tier,啓動您的培訓工作時就有多臺機器。 (請參閱Chuck Finley's答案舉例)

希望它有幫助!

+0

非常感謝。它給了我一個起點,因爲我對如何修改我的代碼感到困惑。 – Appu

+0

我已經能夠在分佈式環境中運行代碼,但截至目前,雲中的每臺計算機都在接收完整數據並在平均後生成輸出。 我想知道如何將分佈式數據提供給雲中的每臺機器。 – Appu

+0

在gogle雲ML上提交作業時,出現主要培訓python文件(即task.py)無法從util文件夾中的python腳本導入函數的錯誤。 一般來說,我們寫:從util.xyz進口abc 這不會被調用在主task.py – Appu

0

您的問題在Run Distributed Training in the Cloud的參數「scale-tier」中回答嗎?

gcloud ml-engine jobs submit training $JOB_NAME \ 
    --job-dir $OUTPUT_PATH \ 
    --runtime-version 1.0 \ 
    --module-name trainer.task \ 
    --package-path trainer/ \ 
    --region $REGION \ 
    --scale-tier STANDARD_1 \ 
    -- \ 
    --train-files $TRAIN_DATA \ 
    --eval-files $EVAL_DATA \ 
    --train-steps 1000 \ 
    --verbose-logging true 
+0

以下是有關分佈式培訓信息的直接鏈接:https://cloud.google.com/ml-engine/docs/how-tos/getting-started-training-prediction#cloud-train-dist – rhaertel80

+0

我認爲這個作業提交將在稍後的階段,一旦我修改了我的代碼,按照分佈式tensorflow。 – Appu

+0

我已經能夠在分佈式環境中運行代碼,但截至目前,雲中的每臺計算機都在接收完整數據並在平均後生成輸出。我想知道如何將分佈式數據提供給雲中的每臺計算機 – Appu

1

如果您使用Tensorflow Estimators構建了您的模型,則需要做的更改非常少。你基本上可以將你的代碼插入this boilerplate code