关于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模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
python3之模块psutil系统性能信息使用
May 30 Python
python 美化输出信息的实例
Oct 15 Python
对python中list的拷贝与numpy的array的拷贝详解
Jan 29 Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 Python
Django 5种类型Session使用方法解析
Apr 29 Python
python多进程使用函数封装实例
May 02 Python
pandas DataFrame运算的实现
Jun 14 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 Python
python Tornado框架的使用示例
Oct 19 Python
详解Go语言运用广度优先搜索走迷宫
Jun 23 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
基于mysql的论坛(1)
2006/10/09 PHP
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
php接口隔离原则实例分析
2019/11/11 PHP
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
React复制到剪贴板的示例代码
2017/08/22 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
Python对象体系深入分析
2014/10/28 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
你应该知道的python列表去重方法
2017/01/17 Python
Python编程实现正则删除命令功能
2017/08/30 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
python识别验证码图片实例详解
2020/02/17 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
2020/12/03 Python
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
《月迹》教学反思
2014/02/19 职场文书
高校教师自荐信范文
2014/03/13 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
python 安全地删除列表元素的方法
2022/03/16 Python