深度学习-tensorflow2:02 - 训练、验证MNIST数据集

简介:MNIST数据集是NIST(National Institute of Standards and Technology,美国国家标准与技术研究所)数据集的一个子集,MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取,主要包括四个文件:

1、Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47 MB,
包含 60,000 个样本)

2、Training set labels: train-labels-idx1-ubyte.gz (29 KB, 解压后 60 KB,
包含 60,000 个标签)

3、Test set images: t10k-images-idx3-ubyte.gz (1.6 MB, 解压后 7.8 MB, 包含
10,000 个样本)

4、Test set labels: t10k-labels-idx1-ubyte.gz (5KB, 解压后 10 KB, 包含
10,000 个标签)

在上述文件中,训练集train一共包含了 60000 张图像和标签,而测试集一共包含了 10000 张图像和标签。idx3表示3维,ubyte表示是以字节的形式进行存储的,t10k表示10000张测试图片(test10000)。每张图片是一个28*28像素点的0 ~ 9的灰质手写数字图片,黑底白字,图像像素值为0 ~ 255,越大该点越白。

案例源码:

import tensorflow as tf


class TestMnist(object):
    def __init__(self):
        mnist = tf.keras.datasets.mnist  # 将样本从整数转换为浮点数

        (self.x_train, self.y_train), (self.x_test, self.y_test) = mnist.load_data()
        self.x_train, self.x_test = self.x_train / 255.0, self.x_test / 255.0

        # 将模型的各层堆叠起来,以搭建 tf.keras.Sequential 模型。为训练选择优化器和损失函数
        self.model = tf.keras.models.Sequential([
            tf.keras.layers.Flatten(input_shape=(28, 28)),
            tf.keras.layers.Dense(128, activation='relu'),
            tf.keras.layers.Dropout(0.2),
            tf.keras.layers.Dense(10, activation='softmax')
        ])

    def train(self):
        self.model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
        self.model.fit(self.x_train, self.y_train, epochs=10)  # 训练并验证模型

    def test(self):
        self.model.evaluate(self.x_test, self.y_test, verbose=2)


if __name__ == '__main__':
    tm = TestMnist()
    tm.train()
    tm.test()

运行结果:

在这里插入图片描述

精度:

313/313 - 1s - loss: 0.0661 - accuracy: 0.9816
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值