【发布时间】:2017-03-05 17:06:57
【问题描述】:
我编写了一个神经网络,它为每个输入样本返回一个包含 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 损失的平均值。
我该怎么做?
【问题讨论】:
-
这里有一个专业提示,使用 numpy 函数(如 np.mean、np.sum 等)在虚拟数据上构建损失函数,并使用轴参数对批次进行操作,例如:np.mean(array,轴=1)。然后换成 Franck 的答案中等效的 tensorflow 函数。
-
会记住的。谢谢!
标签: python tensorflow