Я пытаюсь выполнить функцию потерь в Keras, как в Pytorch https://pytorch.org/docs/master/generated/torch.nn.MultiLabelMarginLoss.html
, но на сборку модели уходит много времени, а после этого требуется очень много времени. долго тренировать его (особенно первую партию) (я использую multi gpu)
возможно это из-за циклов или неправильного использования Keras.backend,
Вот код: (L - количество классов)
def mlm_loss(y_true, y_pred):
loss=float(0)
a = tf.keras.backend.constant(1, dtype='float32')
for s in range(batch_size): # for each sample in batch
for i in range(L):
for j in range(L):
loss=loss + y_true[s][i]*(a-y_true[s][j])*(a-(y_pred[s][i]-y_pred[s][j])) #two conditions
l= tf.keras.backend.constant(L, dtype='float32')
loss=a/l*loss
return loss
спасибо за помощь