关于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 21 Python
python和bash统计CPU利用率的方法
Jul 10 Python
python获取交互式ssh shell的方法
Feb 14 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
Aug 19 Python
浅谈django channels 路由误导
May 28 Python
Django:使用filter的pk进行多值查询操作
Jul 15 Python
python七种方法判断字符串是否包含子串
Aug 18 Python
你喜欢篮球吗?Python实现篮球游戏
Jun 11 Python
Python实现随机生成迷宫并自动寻路
Jun 13 Python
python scrapy简单模拟登录的代码分析
Jul 21 Python
Python如何加载模型并查看网络
Jul 15 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中for循环语句的几种变型
2006/11/26 PHP
php SQL防注入代码集合
2008/04/25 PHP
PHP 异步执行方法,模拟多线程的应用分析
2013/06/03 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
2015/06/23 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
一段实用的php验证码函数
2016/05/19 PHP
深入理解JavaScript定时机制
2010/10/29 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
简单介绍Python中的decode()方法的使用
2015/05/18 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
python异步存储数据详解
2019/03/19 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
Python线程障碍对象Barrier原理详解
2019/12/02 Python
Python双链表原理与实现方法详解
2020/02/22 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
.net软件工程师应聘上机试题
2015/03/10 面试题
创业计划书中包含的9个方面
2013/12/26 职场文书
简历里的自我评价
2014/01/31 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
js 实现验证码输入框示例详解
2022/09/23 Javascript