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


Posted in Python onJanuary 24, 2020

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键弹出文件窗口

然后,右键此电脑 →属性→高级系统设置→环境变量

就可以呼出这么一个画面:

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

然后点击下面的系统变量列表中的Path,点击编辑就可以

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

然后,新建→浏览→选出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()

运行结果如下:

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

顺便跑了以下VAE的网络结构:

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

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

以上这篇关于Keras模型可视化教程及关键问题的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单介绍Python中的floor()方法
May 15 Python
在Python中操作字典之clear()方法的使用
May 21 Python
基于Django用户认证系统详解
Feb 21 Python
python中while和for的区别总结
Jun 28 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 Python
Python多线程及其基本使用方法实例分析
Oct 29 Python
基于python traceback实现异常的获取与处理
Dec 13 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
python统计文章中单词出现次数实例
Feb 27 Python
python上selenium的弹框操作实现
Jul 13 Python
Python字符串格式化方式
Apr 07 Python
基于keras 模型、结构、权重保存的实现
Jan 24 #Python
Python 文件数据读写的具体实现
Jan 24 #Python
利用keras加载训练好的.H5文件,并实现预测图片
Jan 24 #Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 #Python
keras 特征图可视化实例(中间层)
Jan 24 #Python
基于keras输出中间层结果的2种实现方式
Jan 24 #Python
tensorflow 保存模型和取出中间权重例子
Jan 24 #Python
You might like
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
php之可变变量的实例详解
2017/09/12 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
2018/04/04 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
Python3几个常见问题的处理方法
2019/02/26 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
一套中级Java程序员笔试题
2015/01/14 面试题
化工专业大学生职业生涯规划书
2014/01/14 职场文书
电子信息科学专业自荐信
2014/01/30 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
公民代理授权委托书
2014/09/24 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书
表扬通报怎么写
2015/01/16 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
老兵退伍感言
2015/08/03 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python