为什么我在google cloud ml的训练模型中会出现内存异常?

时间:2017-09-13 07:33:42

标签: tensorflow google-cloud-platform tensorflow-gpu

我按照下一个tutorial来训练对象检测TensorFlow 1.3模型。我想在Google云上使用我的小数据集(1类,约100个示例)重新训练faster_rcnn_resnet101_coco或faster_rcnn_inception_resnet_v2_atrous_coco模型。我已经更改了一些类和PATH_TO_BE_CONFIGURED,如相对config files.

教程中的建议

数据集:每个图像12个图像,4032×3024,10-20个标记的边界框。

为什么我会出现内存异常?

  

副本主机0运行内存不足并以非零状态247退出。

请注意我尝试了不同的配置:

  1. scale-tier BASIC_GPU
  2. default config yaml
  3. 自定义yaml以使用具有更多内存的实例

    trainingInput:
      runtimeVersion: "1.0"
      scaleTier: CUSTOM
      masterType: complex_model_l
      workerCount: 7
      workerType: complex_model_s
      parameterServerCount: 3
      parameterServerType: standard
    

2 个答案:

答案 0 :(得分:1)

你能描述一下你的数据集吗?根据我的经验,当用户遇到OOM问题时,通常是因为他们的数据集中的图像是高分辨率的。将图像预缩小到小尺寸往往有助于解决内存问题。

答案 1 :(得分:1)

如果您正在处理大型数据集,我强烈建议您使用" large_model"在配置文件(config.yaml)中,您应该通过将runtimeVersion指定为" 1.4"来选择最近稳定版本的tensorflow。你选择了" 1.0"这导致ML引擎选择TensorFlow版本1.0。有关这方面的更多信息,请参阅Runtime Version,其中说明了:

  

"您可以指定要使用的受支持的Cloud ML Engine运行时版本   你的训练工作。运行时版本规定了TensorFlow的版本以及安装在已分配的培训实例上的其他Python软件包。除非你有令人信服的理由,否则你应该让培训服务使用其默认版本,这是最新的稳定版本。"

因此,我建议使用以下配置:

trainingInput:
 runtimeVersion: "1.4"
 scaleTier: CUSTOM
 masterType: large_model
 workerCount: 7
 workerType: complex_model_l
 parameterServerCount: 3
 parameterServerType: standard

在上面的配置中,

masterType: large_model

允许您选择具有大量内存的计算机,当您的模型太大时(具有许多隐藏层或具有大量节点的图层),特别适用于参数服务器。希望能帮助到你。