我按照下一个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退出。
请注意我尝试了不同的配置:
自定义yaml以使用具有更多内存的实例
trainingInput:
runtimeVersion: "1.0"
scaleTier: CUSTOM
masterType: complex_model_l
workerCount: 7
workerType: complex_model_s
parameterServerCount: 3
parameterServerType: standard
答案 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
允许您选择具有大量内存的计算机,当您的模型太大时(具有许多隐藏层或具有大量节点的图层),特别适用于参数服务器。希望能帮助到你。