keras提供简单方便的模型可视化工具,只需一行代码就可以用框图的形式可视化出你搭建的网络结构。对于复杂网络而言,这个工具就是个神器呀。
这篇文章是解决win10环境下的keras模型可视化工具所遇到的问题,Linux暂时还没有尝试(不过也可以借鉴)。
大致环境是:
OS: win10 |
python==3.5.4 |
keras==2.2.0 |
pydot==1.2.4 |
pydot_ng==1.0.0 |
首先,你可以查看keras官方文档教程。
from keras.utils import plot_model
plot_model(model, to_file='model.png')
这两行代码实现可视化?
其实还是有些问题的,因为你并没有安装GraphViz。
教程
pip install graphviz
pip install pydot
pip install pydot_ng
注意:光用pip安装以上两个模块还是不够的
还需要安装GraphViz:
1. http://www.graphviz.org/
在这个网站上下载对应系统的graphviz,如果觉得找得麻烦,可以在CSDN上下载我上传的。直接解压就是.msi文件,可以在win10上直接运行安装。安装路径都可以默认。
2. 设置环境变量
首先,按win+e键弹出文件窗口
然后,右键此电脑 →属性→高级系统设置→环境变量
就可以呼出这么一个画面:
然后点击下面的系统变量列表中的Path,点击编辑就可以
然后,新建→浏览→选出Graphviz2.38/bin的路径
一直确定保存就可以了。
>>>import os
>>>os.environ.get('PATH', '')
就可以查看自己设置的环境变量是不是在列表里面,在的话就说明成功了。
在这个时候,理论上是可以使用keras可视化了。可以用以下代码验证一波:
import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.utils.vis_utils import plot_model
def run():
# 构建神经网络
model = Sequential()
model.add(Dense(4, input_dim=2, init='uniform'))
model.add(Activation('relu'))
model.add(Dense(2, init='uniform'))
model.add(Activation('sigmoid'))
sgd = SGD(lr=0.05, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy', optimizer=sgd, metrics=['accuracy'])
# 神经网络可视化
plot_model(model, to_file='model.png')
if __name__ == '__main__':
run()
运行结果如下:
顺便跑了以下VAE的网络结构:
整体上,效果不错。主要是,使用方便。
以上这篇关于Keras模型可视化教程及关键问题的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持天达云。