Python CIFAR10关于我的数据的Tensorflow培训:断言错误:模型因丢失而偏离=NaN

Python CIFAR10关于我的数据的Tensorflow培训:断言错误:模型因丢失而偏离=NaN,python,tensorflow,deep-learning,Python,Tensorflow,Deep Learning,我创建了自己的数据,用于培训CIFAR10网络,如下所示:。我的数据存储在名为bag1-data.bin的文件中 我编辑了所有的源代码,用我的数据来训练网络。数据集不太大(1149张图像),网络现在只能预测两个类,因此当我尝试对这些数据运行CIFAR10培训时,我出现以下错误: tensorflow/core/common_runtime/gpu/gpu_device.cc:908] DMA: 0 1 2017-05-25 04:27:17.614312: I tensorflow/core/

我创建了自己的数据,用于培训CIFAR10网络,如下所示:。我的数据存储在名为bag1-data.bin的文件中

我编辑了所有的源代码,用我的数据来训练网络。数据集不太大(1149张图像),网络现在只能预测两个类,因此当我尝试对这些数据运行CIFAR10培训时,我出现以下错误:

tensorflow/core/common_runtime/gpu/gpu_device.cc:908] DMA: 0 1 
2017-05-25 04:27:17.614312: I tensorflow/core/common_runtime/gpu/gpu_device.cc:918] 0:   Y Y 
2017-05-25 04:27:17.614346: I tensorflow/core/common_runtime/gpu/gpu_device.cc:918] 1:   Y Y 
2017-05-25 04:27:17.614386: I tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 980, pci bus id: 0000:03:00.0)
2017-05-25 04:27:17.614425: I tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX 980, pci bus id: 0000:04:00.0)
Traceback (most recent call last):
  File "cifar10_multi_gpu_train.py", line 272, in <module>
    tf.app.run()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
    _sys.exit(main(_sys.argv[:1] + flags_passthrough))
  File "cifar10_multi_gpu_train.py", line 268, in main
    train()
  File "cifar10_multi_gpu_train.py", line 240, in train
    assert not np.isnan(loss_value), 'Model diverged with loss = NaN'
AssertionError: Model diverged with loss = NaN
tensorflow/core/common_runtime/gpu/gpu_device.cc:908]DMA:0 1
2017-05-25 04:27:17.614312:I tensorflow/core/common_runtime/gpu/gpu_device.cc:918]0:Y
2017-05-25 04:27:17.614346:I tensorflow/core/common_runtime/gpu/gpu_device.cc:918]1:Y
2017-05-25 04:27:17.614386:I tensorflow/core/common_runtime/gpu/gpu_device.cc:977]创建tensorflow设备(/gpu:0)->(设备:0,名称:GeForce GTX 980,pci总线id:0000:03:00.0)
2017-05-25 04:27:17.614425:I tensorflow/core/common_runtime/gpu/gpu_device.cc:977]创建tensorflow设备(/gpu:1)->(设备:1,名称:GeForce GTX 980,pci总线id:0000:04:00.0)
回溯(最近一次呼叫最后一次):
文件“cifar10\u multi\u gpu\u train.py”,第272行,在
tf.app.run()
文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py”,第48行,正在运行
_系统出口(主(_sys.argv[:1]+标志_passthrough))
文件“cifar10\u multi\u gpu\u train.py”,第268行,主目录
列车()
列车中第240行的文件“cifar10\u multi\u gpu\u train.py”
断言不是np.isnan(损失值),“模型因损失而偏离=NaN”
AssertionError:模型出现分歧,损失=NaN
我读到这可能是因为梯度在爆炸,但我试图尽可能地调整学习速率,即使初始的学习速率=0.0000000001,错误也会不断出现

我可以在此数据上运行CIFAR网络,但使用MatConvNet。即使将网络参数从该库复制到Tensorflow,问题仍然存在


我做错了什么?这个问题是否与我自己的数据生成有关?是否有任何参数调整可以帮助我使训练成为可能?

一个可能的原因是,
log
sqrt
在零处有无限梯度,因此添加一个ε可以解决这一问题。但是如果没有看到你的代码,就没有什么可以做的了。我会编辑我的代码并很快与你分享。谢谢