带有自定义检查点的三重损失

时间:2019-08-20 20:35:32

标签: python keras deep-learning

我在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)

0 个答案:

没有答案