如何在TensorFlow中迭代张量的元素?

时间:2017-03-05 17:06:57

标签: python tensorflow

我编写了一个神经网络,为每个输入样本返回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损失的平均值 我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

您可以使用tf.sqrt,然后使用tf.reduce_sumtf.reduce_meantf.reduce_sumtf.reduce_mean都有axis参数,表明要减少的维度。

有关更多缩减操作,请参阅https://www.tensorflow.org/api_guides/python/math_ops#Reduction