在paddle中实现了f1 loss函数。
def_compute_loss(self, dec_output ) :TP=fluid.layers.sum ) fluid.layers.cast ) self.label*dec_ dtype='float32 ' ) (TN=flloat (1 - dec_output )、dtype='float32 ' ) (FP=fluid.layers.sum (fluid.layers.cast ((1- self.label ) ) * dec tn.shape,fp.shape,fn.shape(p=TP/)适用于TPFP的鞋垫;r=TP/)适用于TPfn的鞋垫(F1=2*p*r/)适用于pr的鞋垫)
输出的shape如下。
shape:loss(-1L、-1L、3L ) (-1L、-1L、3L ) (-1L、-1L、3L ) )。
F1_shape(-1L、-1L、3L ) )。
mean _ shape name : ' mean _0. tmp _0'
类型{
type: LOD_TENSOR
lod_tensor {
tensor {
data _ type : yqdmd/PDI ms :1
}
}
}
永久:假
loss_shape name: 'tmp_25 '
类型{
type: LOD_TENSOR
lod_tensor {
tensor {
data _ type : yqdmd/PDI ms :1
}
lod_level: 0
}
}
实际上如果试着用这个损耗进行训练的话,结果会变得很奇怪。 你能看看原因吗? 用keras实现这个损耗函数也没问题