关于Keras模型可视化教程及关键问题的解决
作者:木盏 发布时间:2021-03-19 10:39:07
标签: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的网络结构:
整体上,效果不错。主要是,使用方便。
来源:https://blog.csdn.net/leviopku/article/details/81433867
0
投稿
猜你喜欢
- 前言在做项目中,网站前台或者后台有些数据需要在多个视图页面使用,例如用户基本信息数据,菜单展示数据。首先想到的是在每个控制器里传入这些需要的
- 可以实现,下面我们就来做一个检测一个字符串在另一个字符串当中出现几次的函数:入口参数:TheChar="要检测的字符串"
- modelform是model衍生出来的form .modelform的用法非常死.首先在models.py里创建模型表.所有的form组件
- 1、可以在mode参数中添加'b'字符。所有适合文件对象的相同方法。然而,每种方法都希望并返回一个bytes对象。>&
- 前言React核心的单向数据流、一切皆数据的state、不会改变的props,以及状态提升等等经常使用便不多总结,需要的看官方文档。JSXJ
- Function Comma(str)If Not(IsNumeric(str)) Or 
- 当然这应该属于正常过滤手法,而还有一种过滤HTML标签的最终极手法,则是将一对尖括号及尖括号中的所有字符均替换不显示,该方法对于内容中必须描
- 遍历指定文件夹下的文件,根据文件后缀名,获取指定类型的文件列表;根据文件列表里的文件路径,逐个获取文件属性里的“修改时间”,如果“修改时间”
- Python处理json字符串中的非法双引号工作中数据清洗时遇到以下情况:a = '{"地区": "湖
- for循环只是一个多一点的代码,同时循环添加到它。而所涉及的一个循环的共同任务是: 设置一些计数器变量的初始值。 请检查条件语句是正确的。
- 今天以一个表单的自动提交,来进一步学习selenium的用法练习目标0)运用selenium启动firefox并载入指定页面(这部分可查看本
- zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的zipfile
- 欢欢喜喜辞旧岁 🐰🐰🐰辞旧迎新之际,来 AI Studio 一起 #欢喜迎兔年# !分享不同新年风俗,共享一段快乐时光!🐰🐰🐰p>下面
- 本文实例讲述了php逐行读取txt文件写入数组的方法。分享给大家供大家参考。具体如下:假设有user.txt文件如下:user01user0
- 本文实例讲述了PHP基于非递归算法实现先序、中序及后序遍历二叉树操作。分享给大家供大家参考,具体如下:概述:二叉树遍历原理如下:针对上图所示
- 本文实例讲述了PHP设计模式:装饰器模式Decorator。分享给大家供大家参考,具体如下:1. 概述  
- Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理
- 常用的四种SQL命令:1.查询数据记录(Select)语法:Select 字段串行 From table Where 字段=内容例
- 假设有一个表,结构如下:mysql> CREATE TABLE `a` ( `id
- 1.sys模块sys模块的常见函数列表:sys.argv: 实现从程序外部向程序传递参数。sys.exit([arg]): 程序中间的退出,