参考链接:https://blog.csdn.net/lien0906/article/details/78863118
问题:
tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x523cd7d00 of size 2048
tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x523cd8500 of size 9437184
tensorflow/core/common_runtime/bfc_allocator.cc:661] Chunk at 0x5245d8500 of size 2048
解决:尝试降低网络的深度和宽度、batch size 的大小
深度学习中神经网络的显存占用,我们可以得到如下公式:
显存占用 = 模型显存占用 + batch_size × 每个样本的显存占用
-
时间更宝贵,尽可能使模型变快(减少 flop)
-
显存占用不是和 batch size 简单成正比,模型自身的参数及其延伸出来的数据也要占据显存
-
batch size 越大,速度未必越快。在你充分利用计算资源的时候,加大 batch size 在速度上的提升很有限
尤其是 batch-size,假定 GPU 处理单元已经充分利用的情况下:
-
增大 batch size 能增大速度,但是很有限(主要是并行计算的优化)
-
增大 batch size 能减缓梯度震荡,需要更少的迭代优化次数,收敛的更快,但是每次迭代耗时更长。
-
增大 batch size 使得一个 epoch 所能进行的优化次数变少,收敛可能变慢,从而需要更多时间才能收敛(比如 batch_size 变成全部样本数目)