求两个张量之和的结果都是实数

2024-06-06 11:59:13 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我一直在玩张量流的这个有趣的应用: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.添加.... 你知道吗

有人有什么见解吗?你知道吗


Tags: inaddreduceformodeltftrainnn
1条回答
网友
1楼 · 发布于 2024-06-06 11:59:13

因此,在完成了计算损失值之前的每一个操作之后,我的输入数据中都有NaN值。将它们转换为零解决了在最终损失值计算中获得NaN结果的问题。你知道吗

到目前为止,我还没有弄明白为什么我只在损失值的两部分相加时得到一个错误,而在分别计算损失值的部分时却没有得到。你知道吗

完全奇怪。你知道吗

相关问题 更多 >