当我使用CPU跑程序的时候,结果的LOSS正常输出,但是当我改成使用GPU时,我的loss显示为nan。
但是我的输出图片是可以输出的,程序也是可以运行的,说明问题出现在loss函数这一部分。查阅资料后发现,TensorFlow-gpu版不支持双星号(**)运算,所以在损失计算时,返回的数组就会变成nan。
于是我就去找我的loss的这一部分代码,发现确实有双星号的存在。
于是我就把双星号去掉,改成最原始的样子(src-dst)*(src-dst),结果loss就可以正常输出。
有可能GPU的大佬会有更好的修改代码的方式,但是对于我来说,这是最直接最有效的方法。