由于Keras的版本问题,输入的代码'val_acc'或者'val_accuracy'会有所规范。
一开始我想要输出训练模型的损失函数和准确度:(展示部分代码)
def print_history(history): # 绘制训练 & 验证的准确率值 plt.plot(history.history['accuracy']) plt.plot(history.history['val_acc']) plt.plot(history.history['loss']) plt.plot(history.history['val_loss']) plt.title('Model accuracy&loss') plt.xlabel('Epoch') plt.legend(['Train_acc', 'Val_acc', 'Train_loss', 'Val_loss']) plt.show()
history = model.fit(x_train, y_train, epochs=20, batch_size=128)
print_history(history)
而系统却报错:
于是我把'val_acc'改为'val_accuracy',但是同样报错:
也就是说无论是把'val_acc'改为'val_accuracy'还是把'val_accuracy'改为'val_acc',都没有解决问题。
解决方法就是:
看看history有什么关键字。以前Keras所对应含有的关键字不一定现在也有。
输入代码:
print(history.history.keys())
输出结果:
可见,关键字只含有loss和accuracy。只要在上述的函数中做对应的更改,就可以输出损失函数和准确率了。