如何估算google cloud ml中的训练输入?

时间:2018-01-10 09:20:00

标签: tensorflow machine-learning google-cloud-ml object-detection-api

我正在使用google cloud ml来训练模型以使用Tensorflow的对象检测API来检测我的自定义对象。通过关注this tensorflow's guide和阅读this google cloud ml's docs,我配置了我的培训输入并保存在cloud.yml中,如下所示:

trainingInput:
  runtimeVersion: "1.2"
  scaleTier: CUSTOM
  masterType: standard_gpu
  workerCount: 5
  workerType: standard_gpu
  parameterServerCount: 3
  parameterServerType: standard

我使用此命令提交作业:

gcloud ml-engine jobs submit training `whoami`_object_detection_`date +%s` \
    --runtime-version 1.2 \
    --job-dir=gs://MY_BUCKET_NAME/train \
    --packages dist/object_detection-0.1.tar.gz,slim/dist/slim-0.1.tar.gz \
    --module-name object_detection.train \
    --region us-central1 \
    --config object_detection/samples/cloud/cloud.yml \
    -- \
    --train_dir=gs://MY_BUCKET_NAME/train \
    --pipeline_config_path=gs://MY_BUCKET_NAME/data/ssd_mobilenet_v1_pets.config

准备10分钟,然后运行20分钟后,作业记录了一些陌生人的信息Error reported to Coordinator,然后记录了内存错误The replica master 0 ran out-of-memory and exited with a non-zero status of 247

enter image description here

我检查了这份工作的资源,发现了主人的记忆利用率,所有5名工人都很高(大约90-95%)。但他们的CPU利用率是正常的(60-65%)。

我猜,我为教练配置的内存不足。但问题是我如何估计改变训练输入参数?我的意思是我知道如何将masterType更改为更高级别,或将workerCount更改为更高的数字,或减少batch_size中的ssd_mobilenet_v1_pets.config?在这种情况下图像大小是否相关?

我现在很困惑。谷歌云让我变得如此之快,所以启发式似乎无法承受。

0 个答案:

没有答案