模型训练早停与绘制acc&loss图像

为什么要早停

模型训练很多轮后,可能会出现过拟合,准确率下降。

主要语句

early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_accuracy', patience=20)
history = model.fit(x_train, y_train, epochs=50,
                    batch_size=512,
                    validation_data=(x_test1, y_test1),
                    verbose=2,callbacks=[early_stop])

训练了24次就停止了。
模型训练早停与绘制acc&loss图像_第1张图片

用返回值history绘制acc&loss图像

history_dict = history.history
history_dict.keys()
#输出:dict_keys(['loss', 'accuracy', 'val_loss', 'val_accuracy'])
import matplotlib.pyplot as plt

acc = history_dict['accuracy']
val_acc = history_dict['val_accuracy']
loss = history_dict['loss']
val_loss = history_dict['val_loss']

epochs = range(1, len(acc) + 1)

# “bo”代表 "蓝点"
plt.plot(epochs, loss, 'bo', label='Training loss')
# b代表“蓝色实线”
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and validation loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()

plt.show()

模型训练早停与绘制acc&loss图像_第2张图片

# plt.clf()   # 清除数字

plt.plot(epochs, acc, 'bo', label='Training acc')
plt.plot(epochs, val_acc, 'b', label='Validation acc')
plt.title('Training and validation accuracy')
plt.xlabel('Epochs')
plt.ylabel('Accuracy')
plt.legend()

plt.show()

模型训练早停与绘制acc&loss图像_第3张图片

你可能感兴趣的:(tensorflow与图像处理)