在我的张量流CNN的第一轮步骤中,损失变为NAN

时间:2016-04-19 06:01:10

标签: nan tensorflow loss

在我的张量流CNN的第一轮中,损失变为NAN。

1。网络

3个隐藏层(2个卷积层+1隐藏的全连接层)+读出层。

2。 3个隐藏层

a)重量
W = tf.Variable(tf.truncated_normal(wt,stddev=0.1,name='wights' ))

b)偏见
b = tf.Variable( tf.fill([W.get_shape().as_list()[-1] ],0.9),name = 'biases' )

c)激活:
ReLu

d)辍学:
0.6

即使辍学率为0.0

,**损失也会变为纳米

第3。读出的外行:
softmax

4:损失功能:
tf.reduce_mean(-tf.reduce_sum(_lables * tf.log(_logist), reduction_indices=[1]))

5.optimizer:
tf.train.AdamOptimizer

learning_rate = 0.0005
**即使在learning_rate = 0的情况下,损失也会变成纳米。

2 个答案:

答案 0 :(得分:1)

由于我们没有完整的源代码,因此很难看到问题所在。但是,您可以尝试在成本函数中使用“tf.nn.softmax_cross_entropy_with_logits”。例如:

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(predictions, labels))

您可以在https://github.com/nlintz/TensorFlow-Tutorials使用'tf.nn.softmax_cross_entropy_with_logits'找到整个代码示例。

答案 1 :(得分:1)

到目前为止,我遇到了nan可导致的两种情况:

  • 数字太大(也许您在某个数字上执行square,结果太大了)
  • 或者存在无效输入(sqrtlog等某些功能不接受负输入,因此会返回nan