第15章 Keras模型训练效果可视化

简介: 第15章 Keras模型训练效果可视化 查看训练效果的历史数据大有裨益。本章关于将模型的训练效果进行可视化。本章教你: 如何观察历史训练数据 如何在训练时绘制数据准确性图像 如何在训练时绘制损失图像 我们开始吧。

第15章 Keras模型训练效果可视化

查看训练效果的历史数据大有裨益。本章关于将模型的训练效果进行可视化。本章教你:

  • 如何观察历史训练数据
  • 如何在训练时绘制数据准确性图像
  • 如何在训练时绘制损失图像

我们开始吧。

15.1 取历史数据

上一章说到Keras支持回调API,其中默认调用History函数,每轮训练收集损失和准确率,如果有测试集,也会收集测试集的数据。

历史数据会收集fit()函数的返回值,在history对象中。看一下到底收集了什么数据:

# list all data in history
print(history.history.keys())

如果是第7章的二分类问题:

['acc', 'loss', 'val_acc', 'val_loss']

可以用这些数据画折线图,直观看到:

  • 模型收敛的速度(斜率)
  • 模型是否已经收敛(稳定性)
  • 模型是否过拟合(验证数据集)

以及更多。

15.2 可视化Keras模型训练

收集一下第7章皮马人糖尿病模型的历史数据,绘制:

  1. 训练和验证集的准确度
  2. 训练和验证集的损失
# Visualize training history
from keras.models import Sequential
from keras.layers import Dense
import matplotlib.pyplot as plt
import numpy
# fix random seed for reproducibility
seed = 7
numpy.random.seed(seed)
# load pima indians dataset
dataset = numpy.loadtxt("pima-indians-diabetes.csv", delimiter=",")
# split into input (X) and output (Y) variables
X = dataset[:,0:8]
Y = dataset[:,8]
# create model
model = Sequential()
model.add(Dense(12, input_dim=8, init='uniform', activation='relu'))
model.add(Dense(8, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))
# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Fit the model
history = model.fit(X, Y, validation_split=0.33, nb_epoch=150, batch_size=10, verbose=0) # list all data in history
print(history.history.keys())
# summarize history for accuracy
plt.plot(history.history['acc'])
plt.plot(history.history['val_acc'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left') plt.show()
# summarize history for loss plt.plot(history.history['loss']) plt.plot(history.history['val_loss']) plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left') plt.show()

图像如下。最后几轮的准确率还在上升,有可能有点过度学习;但是两个数据集的效果差不多,应该没有过拟合。

从损失图像看,两个数据集的性能差不多。如果两条线开始分开,有可能应该提前终止训练。

15.3 总结

本章关于在训练时绘制图像。总结一下:

  • 如何看历史对象
  • 如何绘制历史性能
  • 如何绘制两个数据集的不同性能
相关文章
|
5月前
|
机器学习/深度学习 数据可视化 TensorFlow
用TensorBoard可视化tensorflow神经网络模型结构与训练过程的方法
用TensorBoard可视化tensorflow神经网络模型结构与训练过程的方法
135 0
|
9月前
|
机器学习/深度学习 存储 数据可视化
PyTorch 神经网络模型可视化(Netron)
PyTorch 神经网络模型可视化(Netron)
571 0
|
11月前
|
机器学习/深度学习 监控 数据可视化
深度学习模型训练可视化(TensorBoard可视化)
深度学习模型训练可视化(TensorBoard可视化)
195 0
|
存储 缓存 自然语言处理
几个常见的小技巧加快Pytorch训练速度
几个常见的小技巧加快Pytorch训练速度
507 0
几个常见的小技巧加快Pytorch训练速度
|
存储 机器学习/深度学习 安全
【ML】机器学习数据集:sklearn中分类数据集介绍
在机器学习的教程中,我们会看到很多的demo,这些demo都是基于python中自带的数据集。今天我们将介绍sklearn中几个常用的分类预测数据集。本教程使用的sklearn版本是1.0.2。
【ML】机器学习数据集:sklearn中分类数据集介绍
|
机器学习/深度学习 存储 Python
【ML】机器学习数据集:sklearn中回归数据集介绍
在机器学习的教程中,我们会看到很多的demo,这些demo都是基于python中自带的数据集。今天我们将介绍三个用于回归预测的数据集。
【ML】机器学习数据集:sklearn中回归数据集介绍
|
机器学习/深度学习 存储 并行计算
优化Pytorch模型训练的小技巧
优化Pytorch模型训练的小技巧
265 0
优化Pytorch模型训练的小技巧
|
机器学习/深度学习 PyTorch API
|
算法框架/工具
使用TensorFlow2.0的 Keras实现线性回归 训练模型
使用TensorFlow2.0的 Keras实现线性回归 训练模型
150 0
使用TensorFlow2.0的 Keras实现线性回归 训练模型
|
机器学习/深度学习 数据可视化 算法框架/工具
可视化Keras模型
可视化Keras模型
179 0
可视化Keras模型