有人可以发布ClusterSpec来对YouTube-8m Challenge code中定义的模型进行分布式培训吗?
The code尝试从TF_CONFIG环境变量加载集群规范。但是,我不确定TF_CONFIG的值是多少。我可以在一台机器上访问2个GPU,并且只想在数据级并行性下运行模型。

最佳答案

如果要以分布式方式运行YouTube 8m挑战代码,则必须编写一个yaml文件(Google提供了一个示例yaml文件),然后需要将该yaml文件的位置作为参数传递。 TF_CONFIG引用了用于训练模型的配置变量。

例如,为了以分布式方式在Google云上运行启动代码,我使用了:

JOB_NAME=yt8m_train_$(date +%Y%m%d_%H%M%S); gcloud --verbosity=debug ml-engine jobs \
submit training $JOB_NAME \
--package-path=youtube-8m --module-name=youtube-8m.train \
--staging-bucket=$BUCKET_NAME --region=us-east1 \
--config=youtube-8m/cloudml-gpu-distributed.yaml \
-- --train_data_pattern='gs://youtube8m-ml-us-east1/1/frame_level/train/train*.tfrecord' \
--frame_features=True --model=LstmModel --feature_names="rgb,audio" \
--feature_sizes="1024, 128" --batch_size=128 \
--train_dir=$BUCKET_NAME/${JOB_TO_EVAL}  


参数config指向具有以下规范的yaml文件cloudml-gpu-distributed.yaml:

trainingInput:
  runtimeVersion: "1.0"
  scaleTier: CUSTOM
  masterType: standard_gpu
  workerCount: 2
  workerType: standard_gpu
  parameterServerCount: 2
  parameterServerType: standard

10-05 23:25