搭建全连接神经网络识别mnist数据集(上)

本文介绍了MNIST手写数字数据集的基本信息,包括其组成、数据格式及如何使用TensorFlow加载该数据集。同时,还提供了常用的数据处理方法和TensorFlow函数说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mnist手写数据集

什么是mnist数据集:

包含7万张黑底白字手写数字图片,其中55000张为训练集,5000张为验证集(validation),10000张为测试机。每张图片大小为28 ×\times× 28像素,图片中纯黑色像素值为0,纯白色像素值为1。数据集的标签是长度为10的一维数组,数组中每个元素索引号对应数字出现的概率。
例如:一张28*28像素的图片变为长度为784的一维数组[0. 0. 0. 0.231 0.234 0.974 … 0. 0. 0.]输入神经网络。该图片的标签为[0. 0. 0. 0. 0. 0. 1. 0. 0. 0.],标签中索引号为6的元素为1,表示该图片6出现的概率是100%。则该图片对应的识别结果是6。

加载mnist数据集:

使用input_data模块中的read_data_sets()函数加载mnist数据集。

from tensorflow.examples.tutorials.mnist import input_data
mnist=input_data.read_data_sets("./data/",one_hot=True)

read_data_sets()函数有两个参数,第一个参数表示数据集存放的路径,第二个参数表示数据集的存取形式。当第二个参数为True时,表示已独热码的形式存取数据集。read_data_sets()函数运行时,会检查指定路径内是否已经有数据集,若指定路径中没有数据集,则自动下载,并分为训练集(train)、验证集(validation)、测试集(test)。

查看mnist样本数:

  • 返回训练集train样本数:
print("train data size:", mnist.train.num_examples)

输出结果:train data size: 55000

  • 返回验证集validation样本数:
print("validation data size:", mnist.validation.num_examples)

输出结果: validation data size: 5000

  • 返回测试集test样本数
print("test data size:", mnist.test.num_examples)

输出结果:test data size: 10000

查看mnist数据集

  • 使用train.labels函数返回mnist数据标签集
    例如:想要查看第0张图片的标签,则使用如下函数mnist.train.labels[0],输出array([0,0,0…1,0,…0])
  • 使用train.images函数返回mnist数据集图片像素值
    例如:在mnist数据集中,若想要查看训练集中第0张图片的像素值,则使用如下函数mnist.train.image[0]。

使用mnist.train.next_batch()函数将数据输入到神经网络

BATCH_SIZE=200
xs,ys=mnist.train.next_batch(BATCH_SIZE)
print("xs shape:",xs.shape)
print("ys shape:",ys.shape)

输出结果:

xs shape(200,784)
ys shape(200,10)

mnist.train.next_batch(BATCH_SIZE)函数表示随机从训练集中抽取BATCH_SIZE个样本输入到神经网络中,并将训练样本的像素值和标签分别赋给xs和ys。

常用函数

  • tf.get_collection("")表示从collection集合中抽出全部变量生成一个列表
  • tf.add()函数表示将参数列表中对应元素相加
    例如:
x=tf.constant([1,2],[1,2])
y=tf.constant([1,1],[1,1])
z=tf.add(x,y)
  • tf.cast(x,dtype)函数表示将参数x转换为指定数据类型
    例如:
A=tf.convert_to_tensor(np.array([[1,2,3,4],[5,6,7,8]]))
print(A.dtype)
b=tf.cast(A,tf.float32)
print(B.dtype)

输出结果:

<dtype:'int64'>
<dtype:'float32>
  • tf.equal()函数表示对比两个矩阵或者向量。若对应元素相等,则在对应位置返回True;否则在对应位置返回False。
    例如:
A=[[1,3,4,5,6]]
B=[[1,3,4,3,2]]
with tf.Session() as sess:
	print(sess.run(tf.equal(A,B))

输出结果:

[[True Ture True False False]]
  • tf.reduce_mean(x,axis)函数表示求取矩阵或张量在指定维度的平均值。若不指定第二个参数,则在所有元素中取平均值;若指定第二个参数为0,则在第一维元素上求平均值,即求每一列的平均值;若指定第二个参数为1,则在第二维元素上求平均值,即求每一行的平均值。
  • tf.argmax(x,axis)函数返回指定维度axis下,参数x中最大值索引号。例如:
    在tf.argmax([1,0,0],0)中,返回0
  • os.path.join()函数表示把参数字符串按照路径命名规则连接。
    例如:
    import os
    os.path.join(’/hello/’,‘good/boy’,‘doiido’)
    输出结果:’/hello/good/boy/doiido’
  • 字符串.split()函数表示按照指定“拆分符”对字符串进行拆分,返回拆分列表。
    例如:
    ‘./model/mnist_model-1001’.split(’/’)[-1].split(’-’)[-1]将返回字符串’1001’
  • tf.Graph().as_default()函数表示将当前设置成为默认图,并返回一个上下文管理器。该函数一般与with关键字搭配使用,应用于将已经定义好的神经网络在计算图浮现。
    例如:with tf.Graph().as_default() as g,表示将在Graph()内定义的节点加入到计算图g中。

总结

本章介绍了mnist数据集的内容和使用方法,以及搭建识别mnist数据集的神经网络中常用的tensorflow工具函数。这些工具不仅对该场景有用,也是许多深度学习应用的基石。下一章将介绍具体的全连接神经网络搭建流程以及代码。


中国大学mooc《人工智能实践:Tensorflow笔记》

电动汽车数据集:2025年3K+记录 真实电动汽车数据:特斯拉、宝马、日产车型,含2025年电池规格和销售数据 关于数据集 电动汽车数据集 这个合成数据集包含许多品牌和年份的电动汽车和插电式车型的记录,捕捉技术规格、性能、定价、制造来源、销售和安全相关属性。每一行代表由vehicle_ID标识的唯一车辆列表。 关键特性 覆盖范围:全球制造商和车型组合,包括纯电动汽车和插电式混合动力汽车。 范围:电池化学成分、容量、续航里程、充电标准和速度、价格、产地、自主水平、排放、安全等级、销售和保修。 时间跨度:模型跨度多年(包括传统和即将推出的)。 数据质量说明: 某些行可能缺少某些字段(空白)。 几个分类字段包含不同的、特定于供应商的值(例如,Charging_Type、Battery_Type)。 各列中的单位混合在一起;注意kWh、km、hr、USD、g/km和额定值。 列 列类型描述示例 Vehicle_ID整数每个车辆记录的唯一标识符。1 制造商分类汽车品牌或OEM。特斯拉 型号类别特定型号名称/变体。型号Y 与记录关联的年份整数模型。2024 电池_类型分类使用的电池化学/技术。磷酸铁锂 Battery_Capacity_kWh浮充电池标称容量,单位为千瓦时。75.0 Range_km整数表示充满电后的行驶里程(公里)。505 充电类型主要充电接口或功能。CCS、NACS、CHAdeMO、DCFC、V2G、V2H、V2L Charge_Time_hr浮动充电的大致时间(小时),上下文因充电方法而异。7.5 价格_USD浮动参考车辆价格(美元).85000.00 颜色类别主要外观颜色或饰面。午夜黑 制造国_制造类别车辆制造/组装的国家。美国 Autonomous_Level浮点自动化能力级别(例如0-5),可能包括子级别的小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值