我开始使用我的GPU为Cats and Dogs数据集训练CNN模型。但是当运行模型时,有时我会得到这个错误:InternalError: Failed copying input tensor from /job:localhost/replica:0/task:0/device:CPU:0 to /job:localhost/replica:0/task:0/device:GPU:0 in order to run _EagerConst: Dst tensor is not initialized
我应该做些什么来防止这种情况?
训练时GPU内存不足时产生的错误信息,通常是由批处理大小引起的。
最简单的解决方案是在jupyter Lab中重新启动内核,并将批处理大小减小到最佳数量。
您可以进一步监视运行期间的内存使用情况并记录运行元数据,然后可以使用这些元数据来确定最佳批处理大小。为此,您可以使用Tensorboard。此外,默认情况下,Tensorflow将尝试分配尽可能多的GPU内存。您可以使用GPUConfig选项更改这一点,以便Tensorflow只分配所需的内存。查看这个GitHub问题。
请注意,重复运行模型会产生开销,如果您进行非常密集的实验,最好可以不时重新启动运行时以清除所有内容。