十二 Keras卷积神经网络实例(手写数字识别)

该博客通过Keras实现了一个手写数字识别的卷积神经网络模型。内容包括数据处理、模型初始化、网络构建、模型编译、训练、评估及预测。在训练过程中,详细解释了卷积层、池化层、全连接层的作用,并展示了模型在测试集上的高准确率。最后讨论了网络优化策略,如增加卷积层和卷积核数量,但提醒注意过度复杂可能导致训练变慢。
摘要由CSDN通过智能技术生成

数据处理

import tensorflow as tf
import keras
from keras import layers

下载数据集(用vpn)

import keras.datasets.mnist as mnist
(train_image, train_label), (test_image, test_label) = mnist.load_data()

在这里插入图片描述
查看训练集

train_image.shape

在这里插入图片描述
训练集是60000张28*28像素的图片组成

图像的数据的shape
hight width channel(黑白图像是1,彩色图像是3)

conv2d 要求数据是一个高 宽 channel 形状的图像
conv2d:图片输入形状:batch(有多少张图片) ,高,宽, channel
为了给conv2d输入图像,我们需要将图片扩宽一个用来表示channel的维度
dense:图片输入形状:batch(有多少张图片) ,data

train_image = np.expand_dims(train_image, axis=-1) ##axis=-1表示在最后一个维度上扩增

此时再看训练集图像形状

在这里插入代码片

在这里插入图片描述
此时变为一个四维数据形状
测试集也扩宽维度

test_image = np.expand_dims(test_image, axis=-1)

初始化模型

model = keras.Sequential()

添加层,构建网络

##卷积层
model.add(layers.Conv2D(64, (3, 3), activation='relu', input_shape=(28, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值