手写数字图像数据集

该示例展示了如何利用TensorFlow和Keras处理MNIST数据集,建立一个包含两个Dense层的神经网络模型,应用Dropout防止过拟合,并用Adam优化器进行训练。模型在训练后对测试集进行了评估。
摘要由CSDN通过智能技术生成

在此示例中,我们加载了MNIST数据集,该数据集包含手写数字图像及其相应的标签。我们定义了一个包含两个密集层的模型,其中第一个密集层有512个神经元,激活函数为ReLU,并且我们使用了dropout来防止过度拟合。最后一层密集层具有10个神经元,输出数字的概率分布。我们使用Adam优化器和稀疏分类交叉熵作为损失函数来编译模型,并在训练过程中记录了精度指标。我们使用fit方法来训练模型,并使用evaluate方法来评估模型的性能。

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

# 加载数据集
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train = x_train.reshape(-1, 28 * 28).astype("float32") / 255.0
x_test = x_test.reshape(-1, 28 * 28).astype("float32") / 255.0

# 定义模型
model = keras.Sequential(
    [
        layers.Dense(512, activation="relu"),
        layers.Dropout(0.3),
        layers.Dense(10),
    ]
)

# 编译模型
model.compile(
    optimizer=keras.optimizers.Adam(0.001),
    loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
    metrics=["accuracy"],
)

# 训练模型
model.fit(x_train, y_train, batch_size=32, epochs=5, verbose=2)

# 评估模型
model.evaluate(x_test, y_test, batch_size=32, verbose=2)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值