利用手写数据集Mnist,完成前向传播。
import matplotlib.pyplot as plt
import tensorflow as tf
import tensorflow.keras.datasets as datasets
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='1'
plt.rcParams['font.size'] = 16
plt.rcParams['font.family'] = ['STKaiti']
plt.rcParams['axes.unicode_minus'] = False
def load_data():
# 加载 MNIST 数据集
(x, y), (x_val, y_val) = datasets.mnist.load_data()
# 转换为浮点张量, 并缩放到-1~1
x = tf.convert_to_tensor(x, dtype=tf.float32) / 255.
# 转换为整形张量
y = tf.convert_to_tensor(y, dtype=tf.int32)
# one-hot 编码,设置类别为10
y = tf.one_hot(y, depth=10)
# 改变视图, [b, 28, 28] => [b, 28*28]
# 将每个图片的矩阵数据调整为向量特征,适合网络的输入格式
x = tf.reshape(x, (-1, 28 * 28))
# 构建数据集对象
train_dataset = tf.data.Dataset.from_tensor_slices((x, y))
# 批量训练,200为一组
train