我正在按照tutorial的要求,在一个小的数据集上运行Mask R-CNN架构(目前与本教程中的内容相同)。
我想我的内存不足了。这是给定的输出:
[...]
Future major versions of TensorFlow will allow gradients to flow
into the labels input on backprop by default.
See `tf.nn.softmax_cross_entropy_with_logits_v2`.
tcmalloc: large alloc 644245094400 bytes == 0x1a936c000 @ 0x7efe929e7b6b 0x7efe92a07379
0x7efe76f65287 0x7efe6848dc0f 0x7efe6851644b 0x7efe68388cc6 0x7efe68389b8c 0x7efe68389e13
0x7efe7182f2b7 0x7efe71853a35 0x7efe6860b53f 0x7efe686005c5 0x7efe686be551 0x7efe686bb263
0x7efe686aa3a5 0x7efe923c96db 0x7efe92702a3f
^C
即使我的数据集和batch_size = 1
相对较小,我的问题仍然是12.5 GB RAM吗?
这是我的Colab-Notebook。
除了batch_size
,shuffle_buffer_size
以外,还有哪些方法可以减少内存负载?
答案 0 :(得分:0)
我认为您的错误来自您的口罩尺寸=(1024,1024)。网络将为每个图像预测几十年的蒙版,然后选择其中的最佳蒙版。在这种情况下,如果您的图像已经具有大小(1024、1024),然后具有相同大小的多个蒙版,则您的GPU不可能拥有足够的内存来保留所有图像。
在标准配置中,掩码的大小为:
mask_height: 33
mask_width: 33
所以我建议您更改一下。