记录编写并训练测试经典数据集mnist

#加载库
import
tensorflow as tf
#加载数据 mnist
= tf.keras.datasets.mnist (x_train, y_train),(x_test, y_test) = mnist.load_data()
#数据归一化 x_train, x_test
= x_train / 255.0, x_test / 255.0 #构建模型 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ]) #编译模型 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) #训练模型 model.fit(x_train, y_train, epochs=5)
#评估模型 model.evaluate(x_test, y_test)

加载数据,归一化数据,构建模型,编译模型,训练模型,评估模型,主要就是这6步。

简单解释:

这段代码使用了TensorFlow库来训练一个简单的神经网络模型,用于识别手写数字。以下是代码的详细解释:

  1. 首先,导入TensorFlow库,并使用tf.keras.datasets.mnist加载MNIST数据集。

  2. mnist.load_data()函数用于加载MNIST数据集的训练和测试数据。返回值是一个元组列表,其中每个元组包含训练或测试数据的特征和对应的标签。

  3. x_trainx_test分别表示训练和测试数据的特征,它们的形状是(28, 28),即每个图像是一个28x28的二维数组。将特征数据归一化,将像素值除以255,使得像素值在0到1之间。

  4. 创建一个顺序模型,包含以下层:

    • tf.keras.layers.Flatten(input_shape=(28, 28)):将输入的二维数组展平为一维数组。
    • tf.keras.layers.Dense(128, activation='relu'):添加一个全连接层,包含128个神经元,使用ReLU激活函数。
    • tf.keras.layers.Dense(10, activation='softmax'):添加一个输出层,包含10个神经元,对应0到9的十个数字,使用softmax激活函数输出每个数字的概率。
  5. 编译模型,设置优化器为Adam,损失函数为稀疏类别交叉熵(sparse_categorical_crossentropy),评估指标为准确率。

  6. 使用训练数据对模型进行训练,设置训练周期为5。

  7. 使用测试数据对模型进行评估,输出在测试集上的准确率。

这段代码展示了如何使用TensorFlow库构建和训练一个简单的神经网络模型。通过调整模型的结构、优化器、损失函数等参数,可以进一步提高模型的性能。

posted @ 2023-09-07 23:05  立体风  阅读(52)  评论(0编辑  收藏  举报