如何在 tensorflow2-gpu 中调试内存不足

Wiw*_*iwi 5 python gpu tensorflow2.x

我正在使用 tensorflow-2 gpu 和 tf.data.Dataset。小模型训练有效。

在训练更大的模型时,首先一切正常:使用了 gpu,第一个 epoch 可以正常工作(但我使用了大部分 gpu 内存)。

在验证时,我遇到了 CUDA_ERROR_OUT_OF_MEMORY 的各种分配,无法分配的字节数越来越少(从 922Mb 到 337Mb)。我目前没有指标也没有回调,我正在使用tf.keras.Model.fit. 如果我删除验证数据,培训将继续。

我的问题是什么?我该如何调试?

在 tf1 中,我可以使用RunOptions(report_tensor_allocations_upon_oom=True)tf2 中是否存在任何等效项?

这发生在 tensorflow==2.1.0 。

小智 0

这些并没有出现在 2.0 alpha TensorFlow 中,而是出现在 2.0 中。

pip安装tensorflow-gpu==2.0.0:内存泄漏!
pip installtensorflow-gpu==2.0.0-alpha:就可以了!

试试看