坐标/地标预测的自定义损失

时间:2018-04-16 16:29:06

标签: tensorflow keras

我目前正试图让一个具有里程碑意义的预测器运行并考虑损失函数。

目前最后一个(密集)图层有32个值,16个坐标编码为x1,y1,x2,y2,......

到目前为止,我只是摆弄均方误差或平均绝对误差损失,但认为地面实况和预测坐标之间的距离更能表达数值的正确性。

我目前的实施方式如下:

script.
  const clinetSideVar = `!{serverSideVar}`;

当我对它进行评估时,它似乎确实有效,但看起来确实很糟糕" hacky"对我来说。有什么建议我可以改进吗?

1 个答案:

答案 0 :(得分:1)

相同的计算表示为Keras中的张量运算,没有分离X和Y坐标,因为这基本上是不必要的:

# get all the squared difference in coordinates
sq_distances = K.square( y_true - y_pred )

# then take the sum of each pair
sum_pool = 2 * K.AveragePooling1D( sq_distances,
                                   pool_size = 2,
                                   strides = 2,
                                   padding = "valid" )

# take the square root to get the distance
dists = K.sqrt( sum_pool )

# take the mean of the distances
mean_dist = K.mean( dists )