具有自定义检查点的三重丢失

2024-09-30 06:34:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个写在Keras上的三元组学习NN。它使用了一组相对较小的图像,作为一个可悲的副作用,可以很容易地显示准确性

def accuracy(y_true, y_pred):
return K.mean(y_pred[:,0,0] < y_pred[:,1,0])

等于1。同时,还有训练的准确性。同时它可能是1,也可能不是1。 那么,如何编写一个检查点来保存训练和验证精度都等于1的“最佳NN”

像这样的伪代码:

if(valid_acc > nBestValidationAccuracy
  or (valid_acc == 1.0 and train_acc > nBestTrainAccuracy)
  or (valid_acc == 1.0 and train_acc == 1.0 and valid_loss < nBestValidationLoss)
  or (valid_acc == 1.0 and train_acc == 1.0 and valid_loss == nBestValidationLoss and train_loss < nBestTrainLoss)):
    nBestValidationAccuracy = valid_acc
    nBestValidationLoss = valid_loss
    nBestTrainAccuracy = train_acc
    nBestTrainLoss = train_loss
    triplet_model.save_weights(best_weights_filepath)

Tags: orandtrainnnkerasacc准确性valid

热门问题