自定义精度功能,用于三重损失训练

时间:2020-07-17 10:32:59

标签: tensorflow keras deep-learning loss-function cnn

我正在尝试使用张量流和keras训练三重损失模型。 我正在使用VGG16模型从日期集中创建2622嵌入。

我使用tfa.losses.TripletSemiHardLoss作为损失函数。 我想在训练过程中添加某种精度功能,因为我觉得仅跟踪损失是不够的。 我知道我可以在模型“编译”函数中使用带有“ metrics”参数的自定义函数,但是我不确定要进行三重态损失训练需要哪种函数。 我想到了采用tensorflow实现的semi_hard_triplet_loss函数并将正三元组的数量除以所有有效三元组的数量。

accuracy = 1-(positive_triplet/all_valid_triplets)

正三元组是指所有亏损> 0的三元组。

这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

我认为这是一种方法。

最终,当所有三元组都被挖掘出来后,要更新的三元组数量将为 0。在您的公式中,它将转换为 progress=1

所以,像这样定义一个伪进程(不是真正的准确性)对我来说很有意义。

不过,我不确定如何从 TripletSemiHardLossTripletHardLoss 检索此信息。