手工计算神经网络第三期:数据读取与完成训练

MNIST数据集下载+idx3-ubyte解析【超详细+上手简单】 下载MNIST数据集并对其进行图片与标签解析 阅读详情

大数据文摘出品

作者:蒋宝尚


小伙伴们大家好呀~~用Numpy搭建神经网络,我们已经来到第三期了。第一期文摘菌教大家如何用Numpy搭建一个简单的神经网络,完成了前馈部分。第二期为大家带来了梯度下降相关的知识点。


这一期,教大家如何读取数据集,以及将数据集用于神经网络的训练,和上两期一样,这次依然用Numpy实现。在开始代码之前,文摘菌先带大家看看今天我们使用的数据集。


数据集介绍


数据集采用著名的MNIST的手写数据集。根据官网介绍,这个数据集有70000个样本,包括60000个训练样本,10000个测试样本。


数据集下载下来之后,文件分为4个部分,分别是:训练集图片、训练集标签、测试集图片、测试集标签。这些数据以二进制的格式储存。


     


其中,训练集图片文件的前16个字节是储存了图片的个数,行数以及列数等。训练集标签文件前8个字节储存了图片标签的个数等。测试集的两个文件同理。


文摘菌下载好的文件存储地址


读取数据

train_img_path=r'C:\Users\Dell\MNIST\train-images.idx3-ubyte'train_lab_path=r'C:\Users\Dell\MNIST\train-labels.idx1-ubyte'test_img_path=r'C:\Users\Dell\MNIST\t10k-images.idx3-ubyte'test_lab_path=r'C:\Users\Dell\MNIST\t10k-labels.idx1-ubyte'


根据文件在本地解压后的储存地址,生成四个地址,上面代码中‘r’是转义字符,因为\在Python中有特殊的用法,所以需用转义字符明确文件地址。


为了让后面的模型表现更好,我们将训练集拆分,拆成50000个训练集和10000个验证集。


注:验证集是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。


import struct
train_num=50000valid_num=10000test_num=10000
with open(train_img_path,'rb') as f:    struct.unpack('>4i',f.read(16))    tmp_img=np.fromfile(f,dtype=np.uint8).reshape(-1,28*28)    tr
Fashion MNIST数据集的处理——“...-idx3-ubyte”文件解析 MNIST数据集可能是计算机视觉所接触的第一个图片数据集。而 Fashion MNIST 是在遵循 MNIST 的格式和大小的基础上,提升了一定的难度,在比较算法的性能时可以有更好的区分度。 Fashion MNIST 数据集包含 60000 张图片的训练集和 10000 张图片的测试集。图片的大小为 28×28,共784个像素。像素的灰度值介于0~255之间的整数。 阅读详情

相关推荐

每日算法讲解(十):使用BP神经网络进行回归任务

BP神经网络是由输入层、隐藏层和输出层组成的多层前馈神经网络,通过反向传播算法(Backpropagation)来调整网络权重和偏置,以最小化预测误差。前向传播:将输入数据通过网络,计算每层的激活值和输出。计算误差:根据预测值和真实值之间的差异计算损失函数值。反向传播:从输出层开始,逐层向后计算梯度,并更新每层的权重和偏置。重复迭代:通过多次迭代,逐步减小预测误差,优化模型参数。接下来,我们定义一个包含一个输入层、两个隐藏层和一个输出层的BP神经网络模型。# 定义模型# 编译模型。

rhtee的博客 1726

【Tensorflow tf 掏粪记录】笔记二——用SVM打造全连接神经网络识别MNIST数据集

由于我个人的原因,在写了第一篇tensorflow安装教程后就暂停了更新博客。可是我并没有停止前进的步伐,因为我习惯了做书面的笔记了。可是书面笔记,容易破损啊啊啊啊!!! 在深度学习中,入门的项目是MNIST数据集的分类识别。就好比我们学各种编程语言时候的Hello World! 下载MNIST数据集 从这里下载MNIST数据集。点击如下图所示按钮下载: 训练图片,训练标签,测...

IronMastiff的博客 1347

PyTorch神经网络从零实现:张量、自动微分与计算图深度解析

神经网络本质是张量在计算图中的前向流动与梯度反向传播过程。其核心原理基于动态计算图(Dynamic Computation Graph)与自动微分(Autograd)机制——每次前向运算实时构建节点依赖链,.backward()则沿.grad_fn逆向执行局部导数累加。这一机制赋予PyTorch高度可调试性,但也带来retain_graph内存开销、梯度累加需手动清零等工程约束。技术价值在于透明可控的模型构建能力,支撑从教学解剖到工业级定制化训练的全场景需求。典型应用包括MNIST全连接网络的手动实现、Re

weixin_33850890的博客 329

NLP四次范式跃迁:从手工特征到提示即接口的演进地图

自然语言处理(NLP)作为人工智能的核心分支,其技术演进始终围绕‘如何让机器理解人类语言’这一根本命题展开。从早期依赖人工设计规则与统计特征,到深度神经网络自动学习表征,再到预训练模型通过海量文本构建通用语言能力,技术重心逐步从任务专用建模转向通用能力激活。其中,预训练(Pre-train)奠定了语义理解的基础能力,而提示工程(Prompt Engineering)则成为释放该能力的关键接口——它将业务逻辑转化为可复现、可版本化、可工程化的文本指令,显著降低数据依赖与部署门槛。当前主流大模型应用已进入‘Pr

ajwh64482的博客 418

时间序列预测:基于PyTorch框架的循环神经网络(RNN)实现销量预测

主要过程如下: 1、首先读取数据集csv文件,读取每天每个地区的销量数据,整理为按照地区分类的销量数据csv文件,并且将每天的销量数据合并为以周(星期)为单位的销量汇总数据。以下代码实现都是按照周进行预测的,比如说可以预测未来1周,2周,3周...等某地的销量数据。 2、数据整理好之后,执行train.py文件开始训练模型,模型生成的文件会保存至models文件夹下。 3、待训练完成之后执行predict.py文件,修改文件中的开始日期进行预测未来几周的销量数据。 4、观察模型训练效果,如果结构不理想

Java开发,人工智能,边缘计算,致力于掌握前沿技术 5019

基于BP神经网络的医学图像分割与分类实战项目

图像分割本质上是一种像素级分类问题,即为输入图像中的每个像素分配一个语义标签,表示其所属的对象或区域类别。例如,在一张脑部MRI图像中,不同的像素可能被标记为“白质”、“灰质”、“脑脊液”或“肿瘤”。该过程不仅需要区分前景与背景,还需处理多个共存对象之间的拓扑关系和空间连续性。因此,图像分割不仅仅是简单的阈值划分或边缘提取,而是融合了低层视觉特征(如颜色、纹理、梯度)与高层语义信息(如形状先验、上下文依赖)的综合性决策过程。

weixin_35762258的博客 788

C# idx1-ubyte idx3-ubyte转图片 文字 浏览器

扩展名为idx1-ubyte一般为Lables idx3-ubyte是图片张量集合 要同时选中两个文件才能进行同时预览是什么值

使用matlab将.idx3-ubyte和.idx1-ubyte格式文件转换成bmp和csv,mnist文件

使用matlab将.idx3-ubyte和.idx1-ubyte格式文件转换成bmp和csv,mnist文件,matlab版本为2014b,转换成的bmp大小为28*28,csv为对应的图片的label,为一个数组。压缩包包含两个m文件,分别运行即可

CS231n+assignment2(一)

cs231n作业二详解+代码

qq_56551150的博客 2411

简易电梯控制系统设计(两层楼)(

(电子科技大学 数字系统实验二 结课验收项目 ) 题目要求:

m0_48801027的博客 1万+

Python 爬取新浪财经 7x24(1): 下载数据

前言 最近在做一个需要很多财经数据的项目。于是想到可不可以通过爬虫来解决(尝试白嫖)。 提供财经数据的网站有很多个,其中比较靠谱和更新比较及时的应该是新浪7x24 live数据。 http://finance.sina.com.cn/7x24/?tag=0 这个问题有一定的难度,因为这个网页是动态加载的。每一次只会加载部分数据,而只有拉到底部才可以加载新的数据。 于是乎,我们要做的事情是: 下载数据 保存到数据库 本篇介绍如何下载数据。 代码 闲言少叙书归正文,代码的实现如下: import reque

ZJ_11701的博客 2905

【2026年阿里巴巴集团暑期实习- 4月25日-算法岗-第二题- 矩阵计数】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 给定两个非负整数序列a和b,构造n×m矩阵C,其中C[i][j]=a[i]×b[j]。统计矩阵中元素≥k的数量。解法是先对数组b排序,然后对于每个a[i],若k=0则直接累加m;若a[i]=0且k>0则跳过;否则计算需要的最小b[j]值,在排序后的b中使用二分查找确定满足条件的元素数量。时间复杂度为O((n+m)log m),空间复杂度O(1)。代码实现了排序和二分查找的高效组合。

m0_73659489的博客 65

RK3568开发笔记- (TX/RX) RGMII delayline 功能调试

本文详细介绍了RK3568芯片RGMII接口delayline功能的调试过程。针对千兆以太网通信不稳定问题,通过分析RGMII时序要求,利用RK3568内置的delayline功能补偿信号延迟。调试方法包括扫描delayline窗口、测试中间值配置、优化硬件设计等步骤。文章还总结了常见问题解决方案,如PHY选型建议和自动扫描功能配置。最终实现了千兆速率下丢包率降至0.01%以下的目标,为类似开发场景提供了实用参考。

flypig has a dream! 316

RestFul API 详解

RESTful API 经常也被叫做 REST API,它是基于 REST 构建的 API。RESTful API 可以让你看到 URL+Http Method 就知道这个 URL 是干什么的,让你看到了 HTTP 状态码(status code)就知道请求结果如何。

wynn的博客 7581

14、微电网控制方法与建模分析

本文详细探讨了微电网的控制方法与建模分析,包括逆变器的小信号状态空间模型、网络模型、负载模型及其组合形成的完整微电网模型。通过对系统特征值和灵敏度因子的分析,揭示了不同模式与系统参数之间的关系。文章还提出了多个研究问题,如岛式系统控制器设计、风力发电控制、并网变换器控制等,为微电网的稳定性分析和优化控制提供了理论支持和实践方向。

elastic6hunter的博客 123

DCNv4+YOLOv8:2024最新可变形卷积赋能目标检测,从原理到实战的科研级优化指南

从理解DCNv4“自适应变形卷积核”的核心思想,到亲手将其嵌入YOLOv8并验证在复杂场景的检测效果,再到基于此探索属于自己的科研与工程方向——这个过程能让你深刻理解目标检测中“特征自适应提取”的核心价值。现在就开始行动,相信你会在目标检测的“自适应特征提取”之路上,走出一条属于自己的技术路径。实验通常会证明:嵌入DCNv4后,YOLOv8在复杂场景下的检测精度提升3-5个百分点,尤其是小目标和遮挡目标的AP提升更为明显,而推理速度仅下降5%-10%(可通过模型量化进一步优化)。2024年最新推出的。

m0_64661770的博客 268

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 清华张钹院士、人大文继荣院长激情辩论:人类对AI的爱痴忧惧
下一篇: 谷歌开发EfficientNets,扩大CNN并与AutoML结合,效率提升10倍|一周AI最火论文
BigDataDigest
博客等级 码龄9年 448粉丝 500原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值