可视化Keras深度学习神经网络模型
2017-12-14 00:00
525 查看
为了使开发者更好的理解其开发的神经网络模型,Keras Python深度学习库提供了可视化神经网络模型的工具。这对于产品演示和讲解是非常有用的在本文,你会学到如何在Keras中总结和可视化深度学习模型。
读完本文后,你将知道:如何创建你的深度学习模型的文本摘要。如何构建你的深度学习模型的图形。在Keras开发深度学习模型的最佳实践技巧。教程概述:本教程分为4个部分:1.示例模型。2.总结模型。3.可视化模型。4.最佳实践经验。示例模型:我们可以通过在Keras中定义一个简单的多层Perceptron的模型来开始,我们可以使用它作为切入点,进而进入可视化的主题。我们将要定义的模型有一个输入变量,一个带有两个神经元的隐藏层,一个带有一个二进制输出的输出层。
下面提供了该网络的代码清单:
实践经验:我通常建议在Keras中创建一个神经网络模型的总结和图形。我推荐这个有几个原因:1.确认图层顺序。将顺序API错误地添加图层与功能性API错误地连接在一起这是很容易犯的错误。图形可以帮助你确认模型是否按照你的预期方式连接。2.确认每个图层的输出形状。定义复杂网络(如卷积和递归神经网络)的输入数据的形状是很常见的。模型摘要和图形可以帮助你确认网络的输入形状是否符合你的要求。3.确认参数。一些网络配置可以使用很少的参数,例如在编码器 - 解码器递归神经网络中使用TimeDistributed缠绕的密集层。查看摘要可以帮助发现使用比预期更多的参数的情况。进一步阅读:如果你想深入了解,你可以查看以下的链接。1.模型可视化Keras API2.Graphviz - 图形可视化软件
3.Graphviz简单的Python界面作者信息
Dr. Jason Brownlee 是一名机器学习从业者,学术研究人员,致力于帮助开发人员从入门到精通机器学习。文章原标题《How to Visualize a Deep Learning Neural Network Model in Keras》作者:Dr.Jason Brownlee译者:虎说八道文章为简译,更为详细内容,请查看原文
读完本文后,你将知道:如何创建你的深度学习模型的文本摘要。如何构建你的深度学习模型的图形。在Keras开发深度学习模型的最佳实践技巧。教程概述:本教程分为4个部分:1.示例模型。2.总结模型。3.可视化模型。4.最佳实践经验。示例模型:我们可以通过在Keras中定义一个简单的多层Perceptron的模型来开始,我们可以使用它作为切入点,进而进入可视化的主题。我们将要定义的模型有一个输入变量,一个带有两个神经元的隐藏层,一个带有一个二进制输出的输出层。
1 | [1 input] -> [2 neurons] -> [1 output] |
from keras.models import Sequential from keras.layers import Dense model = Sequential()model.add(Dense(2, input_dim=1, activation='relu'))model.add(Dense(1, activation='sigmoid'))总结模型:Keras提供了一个总结模型的方法。摘要是文本性的,包括以下信息:1.模型中的图层和顺序。2.每层的输出形状。3.每层中的参数(权重)的数量。4.模型中参数(权重)的总数。网络模型的摘要生成可以通过调用模型上的summary()函数来创建,该函数返回一个可以打印的字符串。以下是更新后的示例,打印创建的网络模型的摘要。运行此示例可以打印下表:
from keras.models import Sequential from keras.layers import Dense model = Sequential()model.add(Dense(2, input_dim=1, activation='relu'))model.add(Dense(1, activation='sigmoid'))print(model.summary())我们可以清楚地看到每个图层的输出形状和权重数量。
_________________________________________________________________ Layer (type) Output Shape Param # ================================================================= dense_1 (Dense) (None, 2) 4 _________________________________________________________________ dense_2 (Dense) (None, 1) 3 ================================================================= Total params: 7 Trainable params: 7 Non-trainable params: 0 _________________________________________________________________可视化模型:网络模型的摘要对于简单的模型是有用的,但对于具有多个输入或输出的模型可能会造成混淆。Keras还提供了一个函数来创建神经网络模型的图,可以使更复杂的模型更容易理解。在Keras中plot_model()的功能是创建网络模型图的函数。使用这个函数你需要了解一些有用的参数:1.model:(必填)你希望绘制的模型。2.to_file:(必需)要将绘图保存到的文件的名称。3.show_shapes :(可选,默认为False)是否显示每个图层的输出形状。4.show_layer_names :(可选,默认为True)是否显示每个图层的名称。下面是绘制创建模型的更新示例。请注意,该示例假定你已经安装了graphviz图库和Python接口。(如果你想要使用该功能你可以去下载安装。)
from keras.models import Sequential from keras.layers import Dense from keras.utils.vis_utils import plot_model model = Sequential() model.add(Dense(2, input_dim=1, activation='relu')) model.add(Dense(1, activation='sigmoid')) plot_model(model, to_file='model_plot.png', show_shapes=True, show_layer_names=True)运行示例用创建的模型的图形创建文件model_plot.png:
实践经验:我通常建议在Keras中创建一个神经网络模型的总结和图形。我推荐这个有几个原因:1.确认图层顺序。将顺序API错误地添加图层与功能性API错误地连接在一起这是很容易犯的错误。图形可以帮助你确认模型是否按照你的预期方式连接。2.确认每个图层的输出形状。定义复杂网络(如卷积和递归神经网络)的输入数据的形状是很常见的。模型摘要和图形可以帮助你确认网络的输入形状是否符合你的要求。3.确认参数。一些网络配置可以使用很少的参数,例如在编码器 - 解码器递归神经网络中使用TimeDistributed缠绕的密集层。查看摘要可以帮助发现使用比预期更多的参数的情况。进一步阅读:如果你想深入了解,你可以查看以下的链接。1.模型可视化Keras API2.Graphviz - 图形可视化软件
3.Graphviz简单的Python界面作者信息
Dr. Jason Brownlee 是一名机器学习从业者,学术研究人员,致力于帮助开发人员从入门到精通机器学习。文章原标题《How to Visualize a Deep Learning Neural Network Model in Keras》作者:Dr.Jason Brownlee译者:虎说八道文章为简译,更为详细内容,请查看原文
相关文章推荐
- 可视化Keras深度学习神经网络模型
- 【深度学习_1.3】搭建浅层神经网络模型
- 深度学习实践系列(3)- 使用Keras搭建notMNIST的神经网络
- 【神经网络与深度学习】Caffe使用step by step:使用自己数据对已经训练好的模型进行finetuning
- 深度学习——残差神经网络ResNet在分别在Keras和tensorflow框架下的应用案例
- Keras深度学习模型可视化
- [深度学习框架] Keras上使用神经网络进行mnist分类
- 深度学习torch之一(神经网络模型的构建)
- 神经网络与深度学习笔记——第4章 神经网络可以计算任何函数的可视化证明
- 深度学习基础模型算法原理及编程实现--06.循环神经网络
- 深度学习网络模型可视化
- 神经网络与深度学习 使用Python实现基于梯度下降算法的神经网络和自制仿MNIST数据集的手写数字分类可视化程序 web版本
- 【深度学习_4.2】Keras构建残差神经网络
- 深度学习基础模型算法原理及编程实现--04.改进神经网络的方法
- 深度学习与自然语言处理之四:卷积神经网络模型(CNN)
- TF之NN:matplotlib动态演示深度学习之tensorflow将神经网络系统自动学习并优化修正并且将输出结果可视化—Jason niu
- 如何比较Keras, TensorLayer, TFLearn ?——如果只是想玩玩深度学习,想快速上手 -- Keras 如果工作中需要解决内部问题,想快速见效果 -- TFLearn 或者 Tensorlayer 如果正式发布的产品和业务,自己设计网络模型,需要持续开发和维护 -- Tensorlayer
- 【神经网络与深度学习】深度学习实战——caffe windows 下训练自己的网络模型
- 深度学习与自然语言处理之四:卷积神经网络模型(CNN)
- 深度学习与自然语言处理之四:卷积神经网络模型(CNN)