在我的项目中,我有几个由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
有没有人有任何想法?
答案 0 :(得分:1)
最后我找到了原因。在我训练的模型中,有几个神经元的重量是NAN。在计算这种NAN神经元的输出时,GPU的结果为零,但CPU的结果为NAN。
答案 1 :(得分:0)
保存模型时,它会记录已经过培训的设备。默认情况下,该设备将在此设备上恢复。在您的情况下,我认为您的网络已经在GPU上进行过培训。
要删除此信息,您需要在恢复元图时指定clear_devices=True
。然后,您可以将网放在适合您的地方。