尝试将模型转换为tflite或.pb文件时遇到以下错误:
ValueError:未知丢失函数:triplet_loss
我检查了StackOverflow和GitHub上发布的不同解决方案,但是它们都不适合我的代码。
#calculates triplet loss
def triplet_loss(y_true, y_pred, alpha = 0.2):
anchor, positive, negative = y_pred[0], y_pred[1], y_pred[2]
# triplet loss formula
pos_dist = tf.reduce_sum( tf.square(tf.subtract(anchor, positive)) )
neg_dist = tf.reduce_sum( tf.square(tf.subtract(anchor, negative)) )
basic_loss = pos_dist - neg_dist + alpha
loss = tf.maximum(basic_loss, 0.0)
return loss
# load the model
model = load_model('facenet_model/model.h5', custom_objects={'triplet_loss': triplet_loss})
我相信我必须对三重损失函数进行一些更改才能解决值错误。