如何利用tensorflow2.0实现MNIST数据集两个隐含层的全连接神经网络
时间: 2023-09-17 09:08:39 浏览: 103
《2020/02/17》tensorflow学习系列1——读取mnist数据集及全连接神经网络训练
以下是使用 TensorFlow 2.0 实现 MNIST 数据集的两个隐含层全连接神经网络的示例代码:
```python
import tensorflow as tf
from tensorflow.keras import layers
# 加载 MNIST 数据集
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.Sequential([
layers.Flatten(input_shape=(28, 28)),
layers.Dense(128, activation='relu'),
layers.Dense(64, activation='relu'),
layers.Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
# 评估模型
model.evaluate(x_test, y_test)
```
在这个示例中,我们首先加载 MNIST 数据集并将其划分为训练集和测试集。然后,我们定义了一个包含两个隐含层的全连接神经网络模型。模型的输入层是一个 `Flatten` 层,将输入的 28x28 的图像展平成一个长度为 784 的向量。接下来是两个 `Dense` 层,分别包含 128 和 64 个神经元,并使用 ReLU 激活函数。最后一层是一个具有 10 个神经元的 `Dense` 层,使用 softmax 激活函数输出每个类别的概率。模型被编译使用 Adam 优化器和稀疏分类交叉熵损失函数进行训练。我们使用训练集拟合模型,然后使用测试集评估模型的性能。
阅读全文