Colab使用小数据集和小batch_size杀死'^ C'-内存不足?

时间:2020-11-01 17:41:00

标签: tensorflow google-colaboratory object-detection-api

我正在按照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_sizeshuffle_buffer_size以外,还有哪些方法可以减少内存负载?

1 个答案:

答案 0 :(得分:0)

我认为您的错误来自您的口罩尺寸=(1024,1024)。网络将为每个图像预测几十年的蒙版,然后选择其中的最佳蒙版。在这种情况下,如果您的图像已经具有大小(1024、1024),然后具有相同大小的多个蒙版,则您的GPU不可能拥有足够的内存来保留所有图像。

在标准配置中,掩码的大小为:

mask_height: 33
mask_width: 33

所以我建议您更改一下。