模型可视化

keras.utils.vis_utils 模块提供了一些绘制 Keras 模型的实用功能(使用 graphviz)。

以下实例,将绘制一张模型图,并保存为文件:

  1. from keras.utils import plot_model
  2. plot_model(model, to_file='model.png')

plot_model 有 4 个可选参数:

  • show_shapes (默认为 False) 控制是否在图中输出各层的尺寸。
  • show_layer_names (默认为 True) 控制是否在图中显示每一层的名字。
  • expand_dim(默认为 False)控制是否将嵌套模型扩展为图形中的聚类。
  • dpi(默认为 96)控制图像 dpi。

此外,你也可以直接取得 pydot.Graph 对象并自己渲染它。例如,ipython notebook 中的可视化实例如下:

  1. from IPython.display import SVG
  2. from keras.utils.vis_utils import model_to_dot
  3. SVG(model_to_dot(model).create(prog='dot', format='svg'))

训练历史可视化

Keras Model 上的 fit() 方法返回一个 History 对象。History.history 属性是一个记录了连续迭代的训练/验证(如果存在)损失值和评估值的字典。这里是一个简单的使用 matplotlib 来生成训练/验证集的损失和准确率图表的例子:

  1. import matplotlib.pyplot as plt
  2. history = model.fit(x, y, validation_split=0.25, epochs=50, batch_size=16, verbose=1)
  3. # 绘制训练 & 验证的准确率值
  4. plt.plot(history.history['acc'])
  5. plt.plot(history.history['val_acc'])
  6. plt.title('Model accuracy')
  7. plt.ylabel('Accuracy')
  8. plt.xlabel('Epoch')
  9. plt.legend(['Train', 'Test'], loc='upper left')
  10. plt.show()
  11. # 绘制训练 & 验证的损失值
  12. plt.plot(history.history['loss'])
  13. plt.plot(history.history['val_loss'])
  14. plt.title('Model loss')
  15. plt.ylabel('Loss')
  16. plt.xlabel('Epoch')
  17. plt.legend(['Train', 'Test'], loc='upper left')
  18. plt.show()