在我的张量流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
第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的情况下,损失也会变成纳米。
答案 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
,结果太大了)sqrt
和log
等某些功能不接受负输入,因此会返回nan
)