LeNet-5模型
1990 年代提出的LeNet-5使卷积神经网络在当时成功商用,下图是 LeNet-5 的网络结构图,它接受32 × 32大小的数字、字符图片,这次将LeNet-5模型用来识别MINIST数据集中的数字,并在测试集中计算其识别准确率。
根据上图的网络结构,可以得出下图的模型结构图:
完整代码示例
第一部分:数据集的加载与预处理
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import datasets # 导入经典数据集加载模块
# 加载 MNIST 数据集
(x, y), (x_test, y_test) = datasets.mnist.load_data() # 返回数组的形状
# 将数据集转换为DataSet对象,不然无法继续处理
train_db = tf.data.Dataset.from_tensor_slices((x, y))
# 将数据顺序打散
train_db = train_db.shuffle(10000) # 数字为缓冲池的大小
# 设置批训练
train_db = train_db.batch(512) # batch size 为 128
#预处理函数
def preprocess(x, y): # 输入x的shape 为[b, 32, 32], y为[b]
# 将像素值标准化到 0~1区间
x = tf.cast(x, dtype=tf.float32) / 255.
# 将图片改为28*28大小的
x = tf.reshape(x, [-1, 28 * 28])
y = tf.cast(y