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)

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。