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)
简单解释:
这段代码使用了TensorFlow库来训练一个简单的神经网络模型,用于识别手写数字。以下是代码的详细解释:
-
首先,导入TensorFlow库,并使用
tf.keras.datasets.mnist
加载MNIST数据集。 -
mnist.load_data()
函数用于加载MNIST数据集的训练和测试数据。返回值是一个元组列表,其中每个元组包含训练或测试数据的特征和对应的标签。 -
x_train
和x_test
分别表示训练和测试数据的特征,它们的形状是(28, 28),即每个图像是一个28x28的二维数组。将特征数据归一化,将像素值除以255,使得像素值在0到1之间。 -
创建一个顺序模型,包含以下层:
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激活函数输出每个数字的概率。
-
编译模型,设置优化器为Adam,损失函数为稀疏类别交叉熵(sparse_categorical_crossentropy),评估指标为准确率。
-
使用训练数据对模型进行训练,设置训练周期为5。
-
使用测试数据对模型进行评估,输出在测试集上的准确率。
这段代码展示了如何使用TensorFlow库构建和训练一个简单的神经网络模型。通过调整模型的结构、优化器、损失函数等参数,可以进一步提高模型的性能。
标签:layers,keras,test,train,测试,tf,编写,mnist From: https://www.cnblogs.com/litifeng/p/17686343.html