Model visualization

Keras提供实用程序功能来绘制Keras模型(使用graphviz ).

这将绘制模型图并将其保存到文件中:

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

plot_model具有四个可选参数:

  • show_shapes (默认为False)控制是否在图形中显示输出形状.
  • show_layer_names (默认为True)控制是否在图形中显示图层名称.
  • expand_nested (默认为False)控制是否将嵌套模型扩展到图中的群集中.
  • dpi (默认值为96)控制图像dpi.

您还可以直接获取pydot.Graph对象并自己渲染,例如在ipython笔记本中显示它:

from IPython.display import SVG
from keras.utils import model_to_dot

SVG(model_to_dot(model).create(prog='dot', format='svg'))

Training history visualization

Keras Model上的fit()方法返回一个History对象. History.history属性是一个字典,记录连续时期的训练损失值和度量值以及验证损失值和验证度量值(如果适用). 这是一个使用matplotlib生成损失和准确性图进行训练和验证的简单示例:

import matplotlib.pyplot as plt

history = model.fit(x, y, validation_split=0.25, epochs=50, batch_size=16, verbose=1)

# Plot training & validation accuracy values
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()

# Plot training & validation loss values
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()