【发布时间】:2017-03-28 10:49:35
【问题描述】:
我正在尝试编写一个自定义 Keras 损失函数,在其中我处理子向量块中的张量。例如,如果输出张量表示四元数系数的串联(即 w,x,y,z,w,x,y,z...),我可能希望在计算损失中的均方误差之前对每个四元数进行归一化函数如下:
def norm_quat_mse(y_true, y_pred):
diff = y_pred - y_true
dist = 0
for i in range(0,16,4):
dist += K.sum( K.square(diff[i:i+4] / K.sqrt(K.sum(K.square(diff[i:i+4])))))
return dist/4
虽然 Keras 将毫无错误地接受此函数并在训练中使用,但它输出的损失值与作为独立函数应用时和使用 model.predict() 时不同,因此我怀疑它无法正常工作。 Keras 内置的损失函数都没有使用这种按块处理的方法,是否可以在 Keras 的自动微分框架中做到这一点?
【问题讨论】:
标签: tensorflow deep-learning keras