我编写了一个神经网络,为每个输入样本返回3个数字的列表。然后从实际值中减去这些值以获得差异。
例如,
actual = [1,2,3]
predicted = [0,0,1]
diff = [1,2,2]
所以我的张量现在有形状[batch_size,3] 我想要做的是迭代张量元素来构造我的损失函数 例如,如果我的batch_size是2,最后是
diff = [[a,b,c],[d,e,f]]
我希望损失
Loss = mean(sqrt(a^2+b^2+c^2), sqrt(d^2+e^2+f^2))
我知道TensorFlow有一个tf.nn.l2_loss()函数来计算整个张量的L2损失。但我想要的是沿着某个轴的张量元素的l2损失的平均值 我该怎么做呢?
答案 0 :(得分:1)
您可以使用tf.sqrt
,然后使用tf.reduce_sum
和tf.reduce_mean
。 tf.reduce_sum
和tf.reduce_mean
都有axis
参数,表明要减少的维度。
有关更多缩减操作,请参阅https://www.tensorflow.org/api_guides/python/math_ops#Reduction