首页 > 解决方案 > Colab kill '^C' - 小数据集和小批量大小的内存不足?

问题描述

我正在尝试按照本教程在一个小数据集上运行掩码 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

即使我有一个相对较小的数据集,我的问题是 12,5 GB RAM 对batch_size = 1吗?这是我的Colab 笔记本

除了 , 减少内存负载的选项有batch_size哪些shuffle_buffer_size

标签: tensorflowgoogle-colaboratoryobject-detection-api

解决方案


我认为您的错误来自您的掩码大小 = (1024, 1024)。该网络将为每张图像预测几十年的掩码,然后选择其中最好的。在这种情况下,如果您的图像已经具有 (1024, 1024) 的大小,然后有几个相同大小的掩码,那么您的 GPU 就没有足够的内存来保存它们。

在标准配置中,面罩的尺寸为:

mask_height: 33
mask_width: 33

所以我建议你改变它。


推荐阅读