在CPU上运行tensorflow-gpu时结果不正确

时间:2017-07-18 08:17:59

标签: tensorflow deep-learning keras tensorflow-gpu

在我的项目中,我有几个由keras在GPU上训练的模型(后端是tensorflow-gpu),当我在GPU上测试结果是正确的。但是当我在CPU上测试(设置CUDA_VISIBLE_DEVICES =)时,model.predict的返回都是NAN。我的环境如下:

cuda 8.0
keras 2.0.5
tensorflow-gpu 1.2.0
Titan X Pascal

有没有人有任何想法?

2 个答案:

答案 0 :(得分:1)

最后我找到了原因。在我训练的模型中,有几个神经元的重量是NAN。在计算这种NAN神经元的输出时,GPU的结果为零,但CPU的结果为NAN。

答案 1 :(得分:0)

保存模型时,它会记录已经过培训的设备。默认情况下,该设备将在此设备上恢复。在您的情况下,我认为您的网络已经在GPU上进行过培训。

要删除此信息,您需要在恢复元图时指定clear_devices=True。然后,您可以将网放在适合您的地方。