keras的模型可视化

keras提供了模型可视化的函数,但是要依赖一些工具,我们在win10系统安好Anaconda3和keras后,还要进行如下操作:
1、安装graphviz模块
1.1 命令行输入 pip install graphviz
1.2 安装graphviz软件。官网地址为http://www.graphviz.org/
官网中有解压版和安装版,推荐解压版,因为我使用解压版成功了,安装版好像出了点问题- -
1.3 将安装目录中的graphviz-2.38\release\bin添加进Path环境变量

2、安装pydot模块
命令行输入pip install pydot==1.1.0

以上两步的顺序一定要正确
做个实验看看吧:

import numpy as np
np.random.seed(1337)
# from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential  # 一层接一层构建的神经网络
from keras.layers import Dense, Activation, Convolution2D, MaxPooling2D, Flatten  # 全连接的层
from keras.optimizers import Adam
from keras.utils import plot_model

f = np.load('data/mnist.npz')
X_train, Y_train = f['x_train'], f['y_train']
X_test, Y_test = f['x_test'], f['y_test']
f.close()

X_train = X_train.reshape(-1, 1, 28, 28) / 255
X_test = X_test.reshape(-1, 1, 28, 28) / 255
Y_train = np_utils.to_categorical(Y_train, num_classes=10)
Y_test = np_utils.to_categorical(Y_test, num_classes=10)

model = Sequential()
model.add(Convolution2D(batch_input_shape=(None, 1, 28, 28), filters=32, kernel_size=5, strides=1, padding='same',
                        data_format='channels_first', activation='relu'))
model.add(MaxPooling2D(pool_size=2, strides=2, padding='same', data_format='channels_first'))


model.add(Convolution2D(filters=64, kernel_size=5, strides=1, padding='same',
                        data_format='channels_first', activation='relu'))
model.add(MaxPooling2D(pool_size=2, strides=2, padding='same', data_format='channels_first'))


model.add(Flatten())

model.add(Dense(1024))
model.add(Activation('relu'))

model.add(Dense(10))
model.add(Activation('softmax'))

plot_model(model, to_file='model1.png', show_shapes=True)

adam = Adam(lr=0.0001)

model.compile(optimizer=adam, loss='categorical_crossentropy', metrics=['accuracy'])

print('Training --------------')
model.fit(X_train, Y_train, epochs=1, batch_size=64)

print('Testing ---------------')
loss, accuracy = model.evaluate(X_test, Y_test)
print('loss: ', loss, '\naccuracy: ', accuracy)

就是通过:
plot(model, to_file='model1.png',show_shapes=True)
生成一个模型图,第一个参数为模型,第二个为要生成图片的路径及文件名,还可以指定两个参数: 
show_shapes:指定是否显示输出数据的形状,默认为False 
show_layer_names:指定是否显示层名称,默认为True

看一下生成的图:





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值