【深度学习实战】使用卷积神经网络(LeNet-5)对mnist数据集进行多分类

1. 步骤

  1. 数据加载
  2. 数据处理
  3. 模型构建
  4. 模型编译
  5. 模型训练
  6. 模型评估

2. 实现

2.1 数据加载
# 导入工具包
import tensorflow as tf
from tensorflow.keras.datasets import mnist

(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train.shape
y_train.shape
X_test.shape

在这里插入图片描述

2.2 数据处理

在这里插入图片描述

# 训练集数据
X_train = tf.reshape(X_train, (X_train.shape[0], X_train.shape[1], X_train.shape[2], 1))
# 测试集数据
X_test = tf.reshape(X_test, (X_test.shape[0], X_test.shape[1], X_test.shape[2], 1))
X_train.shape

在这里插入图片描述

2.3 模型构建

在这里插入图片描述

net = tf.keras.models.Sequential([
    # 卷积层(6个5x5的卷积核)
    tf.keras.layers.Conv2D(filters=6, kernel_size=5, activation='sigmoid', input_shape=(28, 28, 1)),
    # 最大池化
    tf.keras.layers.MaxPool2D(pool_size=2, strides=2),
    # 卷积层(16个5*5的卷积核)
    tf.keras.layers.Conv2D(filters=16, kernel_size=5, activation='sigmoid'),
    # 最大池化
    tf.keras.layers.MaxPool2D(pool_size=2, strides=2),
    # 维度调整为1维数据
    tf.keras.layers.Flatten(),
    # 全卷积层
    tf.keras.layers.Dense(120, activation='sigmoid'),
    tf.keras.layers.Dense(84, activation='sigmoid'),
    tf.keras.layers.Dense(10, activation='softmax')
])
  • 查看网络结构:
    在这里插入图片描述
    在这里插入图片描述
2.4 模型编译
# 设置优化器、损失函数、评价指标
net.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=0.9),
           loss=tf.keras.losses.sparse_categorical_crossentropy,
           metrics=['accuracy'])
2.5 模型训练
net.fit(X_train, y_train, epochs=5, batch_size=128, verbose=1)

在这里插入图片描述

2.6 模型评估
net.evaluate(X_test, y_test, verbose=1)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想做一只快乐的修狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值