Keras模型可视化教程及关键问题解决

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的网络结构:
这里写图片描述

整体上,效果不错。主要是,使用方便

猜你喜欢

转载自blog.csdn.net/leviopku/article/details/81433867