在我的tensorflow CNN的第一步中,损失变成了NAN

在我的tensorflow CNN的第一步中,损失变成了NAN。

1。网络:
3隐藏的分层(2卷积层+1隐藏的fullconnect分层)+读出分层。

2.三名隐蔽的囚徒:
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 ='biasses')
c)激活:
RELU
d)辍学
0.6。
**即使退出为0.0,损失也会减少

  • 读者layyer
    SOFTMAX
  • 4:损失函数:
    tf.reduce_mean(-tf.reduce_sum(_lables * tf.log(_logist),reduction_indices = [1]))

    5.optimizer:
    tf.train.AdamOptimizer
    learning_rate:0.0005
    **即使learn_rate = 0,失败率也会降低


    由于我们没有完整的源代码,很难看到问题。 但是,您可能会尝试在费用函数中使用'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'找到完整的代码示例。


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

  • 数字变得太大(也许你在一个数字上表现square ,结果太大)
  • 或者存在一个无效的输入(一些像sqrtlog这样的函数不会带负输入,所以它们会返回nan
  • 链接地址: http://www.djcxy.com/p/5501.html

    上一篇: Loss turns to be NAN at the first round step in my tensorflow CNN

    下一篇: adventure class of text based adventure game