Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 为什么这两个Tensorflow操作没有相同的结果?_Math_Tensorflow - Fatal编程技术网

Math 为什么这两个Tensorflow操作没有相同的结果?

Math 为什么这两个Tensorflow操作没有相同的结果?,math,tensorflow,Math,Tensorflow,我正在做一个tensorflow图,最后一步是简单的均方误差计算。一些输入是填充,我使用张量loss\u mask将其屏蔽掉。这个张量大部分是1,末尾有几个0 下面的操作计算均方误差,其中屏蔽输入计为零误差 error_squared = loss_mask * tf.pow(expected_outputs_reshaped - network_outputs, 2) loss = tf.reduce_mean(error_squared) 问题是,如果许多输出被屏蔽,那么平均损失似乎比它应

我正在做一个tensorflow图,最后一步是简单的均方误差计算。一些输入是填充,我使用张量
loss\u mask
将其屏蔽掉。这个张量大部分是1,末尾有几个0

下面的操作计算均方误差,其中屏蔽输入计为零误差

error_squared = loss_mask * tf.pow(expected_outputs_reshaped - network_outputs, 2)
loss = tf.reduce_mean(error_squared)
问题是,如果许多输出被屏蔽,那么平均损失似乎比它应该的低得多,因为这些被屏蔽的输入算作零误差。因此,我尝试了以下代码来更正此问题:

error_squared = loss_mask * tf.pow(expected_outputs_reshaped - network_outputs, 2)
loss = tf.reduce_sum(error_squared) / tf.reduce_sum(loss_mask)
如果
loss\u mask
都是1,那么这两件事的结果应该是一样的。然而,事实并非如此。对于第一个,我得到了正确的值,它们都在0和1之间。第二,我得到了数百个值。为什么这两个不一样


我已经验证了
tf.reduce\u sum(loss\u mask)
等于
error\u squared
中的元素数,您可以尝试
loss=tf.div(tf.reduce\u sum(error\u squared),tf.reduce\u sum(loss\u mask)
@TianjinGu做了完全相同的事情。你能试着找到预期输出和网络输出的特定值,这些值会导致不同的值吗?这样更容易重新设定。谢谢!