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