我正在 Keras 上训练一个神经网络,以将类预测为形式、S,P,T
where和具有不同值的三元组。神经网络的输出是一个联合三元组。S
P
T
在我的训练数据中,并非所有样本都标记了三元组的所有条目,即对于某些样本,您可以找到 y 值为s1,_,t1
or_,p2,_
等等。
我想实现一个接受这个空值的自定义损失函数。我找到了这个例子:
def masked_loss_function(y_true, y_pred):
mask = K.cast(K.not_equal(y_true, mask_value), K.floatx())
return K.binary_crossentropy(y_true * mask, y_pred * mask)
我的问题是:y_pred
和y_true
是单热编码张量,所以在比较之前y_pred
,y_true
我需要对它们进行解码,然后比较三元组的内部部分。
我该如何实施?