Keras 成长之路(六)模型可视化

本文详细介绍了一种用于手写数字识别的卷积神经网络(CNN)构建过程,包括使用Keras搭建网络、配置优化器及损失函数,并展示了模型结构图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

显示效果

在这里插入图片描述

Show me the code

导包

# 顺序模型
from keras import Sequential
# 全连接层,卷积层,池化层,扁平化层,Dropout
from keras.layers import Dense, Conv2D, MaxPool2D, Flatten, Dropout, Convolution2D, InputLayer
# 优化器
from keras.optimizers import Adam
# utils
from keras import utils

import numpy as np
import matplotlib.pyplot as plt

定义神经网络并显示神经网络信息

####### 建立网络 ######
rows = 28
cols = 28
# 顺序模型
model = Sequential()

# 卷积,池化部分
model.add(InputLayer(input_shape= (rows, cols, 1), name= "input"))
model.add(Convolution2D(filters= 32, kernel_size= 5, strides= 1,
                activation= "relu", padding= "same"))
model.add(MaxPool2D(pool_size= 2, strides= 2, padding= "same"))
model.add(Conv2D(filters= 64, kernel_size= 5, strides= 1,
                activation= "relu", padding= "same"))
model.add(MaxPool2D(pool_size= 2, strides= 2, padding= "same"))
model.add(Dropout(0.25))

# 扁平化
model.add(Flatten())

# 全连接部分
model.add(Dense(128, activation= "relu"))
model.add(Dropout(0.5))
model.add(Dense(128, activation= "relu"))
model.add(Dropout(0.5))
model.add(Dense(10, activation= "softmax"))
######################

# 设置优化器
adam = Adam()

# 整合模型
model.compile(optimizer= adam, 
     	      loss= "categorical_crossentropy", 
     	      metrics=["accuracy"])

# 保存模型结构图片
utils.vis_utils.plot_model(model, 
						   show_layer_names= True, 
						   show_shapes= True)

img = plt.imread("./model.png")
plt.figure(figsize= (20, 20))
plt.imshow(img)
plt.axis("off")
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值