所以我一直在玩张量流的这个有趣的应用:TensorKart
完整的源代码在这里:https://github.com/kevinhughes27/TensorKart
我在计算损失时得到了一个很好的结果,这完全把我难住了。问题在于这行代码:
loss = tf.reduce_mean(tf.square(tf.sub(model.y_, model.y))) + tf.add_n([tf.nn.l2_loss(v) for v in train_vars]) * L2NormConst
当我评估第一部分时:
tf.reduce_mean(tf.square(tf.sub(model.y_, model.y)))
我得到的值大约是0.8 当我评估第二部分时:
tf.add_n([tf.nn.l2_loss(v) for v in train_vars]) * L2NormConst
我得到的值大约是3.1
但是当我把这两部分加起来的时候,我得到了NaN?!?!你知道吗
我检查了形状和类型,它们都返回为:张量(“形状:0,形状=(0,),数据类型=int32)
我尝试过的东西:使用减少总和而不是tf.添加,把它们扔给tf.32浮动,用tf.添加.... 你知道吗
有人有什么见解吗?你知道吗
因此,在完成了计算损失值之前的每一个操作之后,我的输入数据中都有NaN值。将它们转换为零解决了在最终损失值计算中获得NaN结果的问题。你知道吗
到目前为止,我还没有弄明白为什么我只在损失值的两部分相加时得到一个错误,而在分别计算损失值的部分时却没有得到。你知道吗
完全奇怪。你知道吗
相关问题 更多 >
编程相关推荐