2017-03-05 2741 views
2

我已经编码了一个神经网络,它为每个输入样本返回一个3个数字的列表。然后从实际值中减去这些值以获得差异。如何遍历TensorFlow中张量的元素?

例如,

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损失。但是我想要的是某个轴上张量元素的损失的平均值。
我该如何去做这件事?

+0

这里有一个专业技巧,建立在使用像np.mean,np.sum等,与轴参数numpy的功能虚拟数据的损失函数在批量操作,例如: np.mean(数组,轴= 1)。然后换成弗兰克答案中的等效张量流函数。 – vega

+0

请注意。谢谢! – phoenixwing

回答