- Keras深度学习:入门、实战与进阶
- 谢佳标
- 483字
- 2024-10-30 00:46:58
3.3.1 网络拓扑可视化
对于较简单的模型,可直接查看简单的模型概要,但对于更复杂的网络拓扑结构,Python的Keras API接口提供可视化模型的方法,即graphviz库。以下是Python安装graphviz和pydot库的程序代码。
pip install pydot-ng pip install graphviz pip install pydot==1.2.3
下载graphviz-2.38.msi软件并安装,并将安装目录添加到电脑的系统环境变量中。
Python中的Keras通过plot_model()函数将神经网络绘制成图形。函数包含以下参数。
- model(必需):要绘制的模型。
- to_file(必需):保存模型图的文件名称。
- show_shapes(可选,默认为False):布尔值,用于显示每层的输出维度。
- show_layer_names(可选,默认为True):布尔值,用于显示每层的名称。
下面通过一个简单的例子来介绍如何使用Python中的Keras的plot_model()函数。运行以下代码得到的网络拓扑结构如图3-11所示。
# 创建网络拓扑 from keras.models import Sequential from keras.layers import Dense, Activation from keras.utils import plot_model model = Sequential() model.add(Dense(32, activation='relu', input_dim=100)) model.add(Dense(1, activation='sigmoid')) # 绘制网络拓扑结构 plot_model(model,to_file='model_plot.png',show_shapes=True,show_layer_names=True)
图3-11 使用plot_model()绘制网络拓扑结构(Python版)
很遗憾,R的Keras并未提供plot_model()函数绘制网络拓扑图。不过,我们可以通过deepviz包的plot_model()函数实现。通过运行以下程序代码安装deepviz包。
>devtools::install_github("andrie/deepviz")
安装完成后,即可使用plot_model()函数对网络拓扑进行可视化。运行以下代码得到的网络拓扑结构如图3-12所示。
> library(deepviz) > library(magrittr) > library(keras) > model <- keras_model_sequential() > model %>% + layer_dense(units = 32,input_shape = c(100),activation = 'relu') %>% + layer_dense(units = 1,activation = 'sigmoid') > model %>% plot_model()
图3-12 使用deepviz包的plot_model()绘制网络拓扑结构(R版)