我正在跟随Tensorflow Object Detection API tutorial在我自己的Google Cloud数据集上训练更快的R-CNN模型。但是以下内容"内存不足"错误不断发生。
The replica master 0 ran out-of-memory and exited with a non-zero status of 247.
根据日志,返回了非零退出状态-9
。如the official documentation中所述,代码-9
可能意味着培训使用的内存多于分配的内存。
但是,内存利用率低于0.2。那么为什么我有内存问题呢?如果有帮助,the memory utilization graph is here.
答案 0 :(得分:3)
内存利用率图表是所有工作人员的平均值。在内存不足错误的情况下,也不能保证最终数据点被成功导出(例如,存储器中的巨大突然峰值)。我们正在采取措施使内存利用率图更有用。
如果您正在使用Master进行评估(如大多数示例中所示),则Master使用相对于普通worker的~2x RAM。您可以考虑使用large_model machine type。
答案 1 :(得分:0)
查看您的错误,您的ML代码似乎消耗了最初分配的内存。
尝试使用允许更多内存的机器类型,例如“large_model”或“complex_model_l”。使用config.yaml定义如下:
trainingInput:
scaleTier: CUSTOM
# 'large_model' for bigger model with lots of data
masterType: large_model
runtimeVersion: "1.4"
有一个类似的问题Google Cloud machine learning out of memory。请参考该链接以获取实际解决方案。
答案 2 :(得分:0)
running_pets教程使用BASIC_GPU层,因此GPU可能内存不足。 ML引擎上的图表目前仅显示CPU内存利用率。
如果是这种情况,将层级更改为更大的GPU将解决问题。 Here是关于不同层级的一些信息。 在同一页面上,您将找到有关如何配置它的yaml文件的示例。