2017-09-13 137 views
1

我按照下一个tutorial来训练物体检测TensorFlow 1.3模型。我想在Google云上重新训练faster_rcnn_resnet101_coco或faster_rcnn_inception_resnet_v2_atrous_coco模型与我的小数据集(1个类,约100个示例)。我已经改变了许多类和PATH_TO_BE_CONFIGURED,正如相关教程中所建议的config files.为什么我在谷歌云上的培训模型中遇到内存异常ml?

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

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

副本主0跑出内存不足,并用247

非零状态退出请注意,我尝试了不同的配置:

  1. 规模梯队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 
    
+0

可能是课程数量太多,或者您喂食的图片太大。 – fabrizioM

+0

我只有一个班。也许图像太大了? (4032×3024) –

回答

1

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

+0

每张图片12幅图像,4032×3024,10-20个标注边界框。 –

+0

那些是大的图像!这绝对是OOM的原因。是否有任何理由可以将它们调整为较小的值? –

+0

你为什么认为它们很大?一个图像的大小是〜1.4 MB。我训练巴赫1号。 –

1

如果您正在处理大型数据集,强烈建议您在配置文件(config.yaml)中使用“large_model”,并且应该选择最新的tensorflow稳定版本,方法是将runtimeVersion指定为“1.4 ”。您选择了导致ML引擎选择TensorFlow版本1.0的“1.0”。有关更多信息,请参阅Runtime Version它说:

“你可以指定一个支持云ML引擎运行时版本使用 你的训练任务运行时版本决定TensorFlow的版本和其他Python包它们都安装在您分配的培训实例上,除非您有充足的理由,否则您应该让培训服务使用默认版本,该版本始终是最新的稳定版本。“

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

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

在上面的配置,

masterType: large_model 

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

相关问题