关于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 相关文章推荐
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
Python Tornado批量上传图片并显示功能
Mar 26 Python
Python flask框架端口失效解决方案
Jun 04 Python
Python getattr()函数使用方法代码实例
Aug 10 Python
Python爬虫之Selenium实现窗口截图
Dec 04 Python
python使用正则表达式匹配txt特定字符串(有换行)
Dec 09 Python
pandas实现导出数据的四种方式
Dec 13 Python
Python3+Django get/post请求实现教程详解
Feb 16 Python
python 如何用map()函数创建多线程任务
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
我的论坛源代码(三)
2006/10/09 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
python如何获取服务器硬件信息
2017/05/11 Python
python之PyMongo使用总结
2017/05/26 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
python pycharm的安装及其使用
2019/10/11 Python
使用python实现对元素的长截图功能
2019/11/14 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
.NET方向面试题
2014/11/20 面试题
护士自我介绍信
2014/01/13 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
付款承诺函范文
2015/01/21 职场文书
大学生党员个人总结
2015/02/13 职场文书
开除员工通知
2015/04/22 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android