前言
刚开始学习tensorflow, 首先接触的是minist手写数字识别,用的梯度下降算法,记录一下以备后续复习和供其他初学者参考,如有错误请不吝指正,万分感谢。
环境:
- python 3.9.13
- Tensorflow 2.11.0
- Tensorboard 2.11.0
一、tenosrflow minist手写数字识别代码
将说明加在代码注释,方便查看复习。
import tensorflow as tf
from tensorflow import keras
from keras import layers, optimizers, datasets
#加载minist数据集,分成训练集和测试集,每个样本包含图像和标签
(x, y), (x_val, y_val) = datasets.mnist.load_data()
print('datasets', x.shape, y.shape, x.min(), y.min())
#训练集图像数据归一化到0-1之前
x = tf.convert_to_tensor(x, dtype=tf.float32) / 255.
#构建数据集对象
db = tf.data.Dataset.from_tensor_slices((x, y))
#批量训练,并行计算一次32个样本、所有数据集迭代20次
db = db.batch(32).repeat(10)
#构建Sequential窗口,一共3层网络,并且前一个网络的输出作为后一个网络的输入
model = kera