在浏览Keras官方文档时,发现Keras有一个模块——keras.utils.vis_utils,这个模块利用graphviz,可以画出Keras模型,即实现模型的可视化。官方文档所在地址
感觉这个功能还蛮有意思,就按照文档指示进行安装和调用了。
首先,官方文档中提到该功能的实现需要pydot-ng 和 graphviz。
【Tips】依赖 pydot-ng 和 graphviz,若出现错误,用命令行输入pip install pydot-ng & brew install graphviz
pydot-ng好说,直接pip安装即可。
pip install pydot-ng
注意是pydot-ng而不是pydot。使用pip也可以安装pydot,但pydot和pydot-ng是两个不同的python库,Keras的源码中检验和导入的都是pydot-ng。
文档中graphviz是用brew 安装的,但是这个东西,我的windows PC是没有的。(。•ˇ‸ˇ•。)百度了一下,brew也是Mac本的的工具。
那么graphviz怎么安装呢?
首先,不能用pip进行安装,虽然pip中也能安装graphviz,但并不是Keras需要的,安上了也不能用。
graphviz需要下载安装,下载页面: http://www.graphviz.org/Download_windows.php
出于网速问题,我下载了zip版本。graphviz-2.38.zip百度云
下载后,解压到C:\Program Files,并将文件夹重命名为graphviz,接下来将C:\Program Files\graphviz\bin配置到环境变量。
ok,到现在为止,前期准备工作完成。接下来该实际使用一下了。
from keras.utils import plot_model
plot_model(model, to_file='model.png')
但是,报错了……,错误显示:
Traceback (most recent call last):
File "D:\Python\lib\site-packages\keras\utils\vis_utils.py", line 23, in _check_pydot
pydot.Dot.create(pydot.Dot())
File "D:\Python\lib\site-packages\pydot_ng\__init__.py", line 1890, in create
'GraphViz\'s executables not found')
pydot_ng.InvocationException: GraphViz's executables not found
没安graphvizs时,若是执行程序,也是报这个错。这意味着Keras程序还是没有找到我们的graphvizs,哪怕是把它配进了环境变量里。
经过google之后,得知原来是这个方法是为了linux平台准备的,所以在windows平台上执行还需要在前面加上两行代码:
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files/graphviz/bin/' # 安装graphviz的路径
这下就能成功执行了。
事实上,plot_model这个方法还有三个参数:
show_shapes:指定是否显示输出数据的形状,默认为False
show_layer_names:指定是否显示层名称,默认为True
rankdir:传递给PyDot的参数,指定图片的排列方向,参数可选则'TB'(垂直)和'LR'(水平),默认为TB
如果将rankdir设为LR,则是这个样子:
所以,还是默认的TB好一些。(ง •̀_•́)ง