首页 > 解决方案 > 训练时出现 OOM 错误,但验证时没有

问题描述

A 有一个大约 120 层的深度卷积网络。我尝试[7,368,368,1]成功地进行批次训练。此外,我可以轻松地[1,2700,2700,1]作为验证步骤的输入。但是我不能将批量大小从 7 增加到更高(例如 20),tensorflow 失败了

 OOM when allocating tensor with shape[20,10,368,368].

怎么可能,在验证时我们有[1,10,2700,2700]张量?

标签: pythontensorflowkeras

解决方案


验证时,我们只有前向传递,所以数据只是向前流动,不需要保留前一层的输出。但是在训练中,您需要保留一些层输出并在反向传递中使用它们(另一方面,我认为 tensorflow 在每次迭代中保持参数梯度以将它们传递给优化器)。结果,训练将使用更多的 RAM


推荐阅读