比用 Pytorch 框架快 200 倍!0.76 秒后,笔记本上的 CNN 就搞定了 MNIST | 开源

2023 AI实操手册:PyTorch 2.0、LoRA微调与工业级Diffusion落地指南 人工智能(AI)作为基础技术概念,其核心价值在于工程化落地能力——而非模型参数规模或理论新颖性。从原理看,AI依赖计算框架的确定性优化、数据管道的鲁棒性设计与推理链路的可控性保障;技术价值体现在显存利用率提升、API延迟降低和人力成本节约等可度量指标;典型应用场景包括法律合同审查、工业质检视觉生成、AGV机器人分层决策等真实业务闭环。本文聚焦2023年一线工程师最常面对的三大实操切口:PyTorch 2.0的torch.compile性能榨取、LoRA在中小算力下的高效微调、Diffusion模型在生产环境 阅读详情

博雯 发自 凹非寺

量子位 报道 | 公众号 QbitA

在MNIST上进行训练,可以说是计算机视觉里的“Hello World”任务了。

而如果使用PyTorch的标准代码训练CNN,一般需要3分钟左右。

但现在,在一台笔记本电脑上就能将时间缩短200多倍。

速度直达0.76秒!

那么,到底是如何仅在一次epoch的训练中就达到99%的准确率的呢?

八步提速200倍

这是一台装有GeForce GTX 1660 Ti GPU的笔记本。

我们需要的还有Python3.x和Pytorch 1.8。

先下载数据集进行训练,每次运行训练14个epoch。

这时两次运行的平均准确率在测试集上为99.185%,平均运行时间为2min 52s ± 38.1ms。

接下来,就是一步一步来减少训练时间:

一、提前停止训练

在经历3到5个epoch,测试准确率达到99%时就提前停止训练。

这时的训练时间就减少了1/3左右,达到了57.4s±6.85s。

二、缩小网络规模,采用正则化的技巧来加快收敛速度

具体的,在第一个conv层之后添加一个2x2的最大采样层(max pool layer),将全连接层的参数减少4倍以上。

然后再将2个dropout层删掉一个。

这样,需要收敛的epoch数就降到了3个以下,训练时间也减少到30.3s±5.28s。

三、优化数据加载

使用data_loader.save_data(),将整个数据集以之前的处理方式保存到磁盘的一个pytorch数组中。

也就是不再一次一次地从磁盘上读取数据,而是将整个数据集一次性加载并保存到GPU内存中。

这时,我们只需要一次epoch,就能将平均训练时间下降到7.31s ± 1.36s。

四、增加Batch Size

将Batch Size从64增加到128,平均训练时间减少到4.66s ± 583ms。

五、提高学习率

使用Superconvergence来代替指数衰减。

在训练开始时学习率为0,到中期线性地最高值(4.0),再慢慢地降到0。

这使得我们的训练时间下降到3.14s±4.72ms。

六、再次增加Batch Size、缩小缩小网络规模

重复第二步,将Batch Size增加到256。

重复第四步,去掉剩余的dropout层,并通过减少卷积层的宽度来进行补偿。

最终将平均时间降到1.74s±18.3ms。

七、最后的微调

首先,将最大采样层移到线性整流函数(ReLU)激活之前。

然后,将卷积核大小从3增加到5.

最后进行超参数调整:

使学习率为0.01(默认为0.001),beta1为0.7(默认为0.9),bata2为0.9(默认为0.999)。

到这时,我们的训练已经减少到一个epoch,在762ms±24.9ms的时间内达到了99.04%的准确率。

“这只是一个Hello World案例”

对于这最后的结果,有人觉得司空见惯:

优化数据加载时间,缩小模型尺寸,使用ADAM而不是SGD等等,都是常识性的事情。

我想没有人会真的费心去加速运行MNIST,因为这是机器学习中的“Hello World”,重点只是像你展示最小的关键值,让你熟悉这个框架——事实上3分钟也并不长吧。

而也有网友觉得,大多数人的工作都不在像是MNIST这样的超级集群上。因此他表示:

我所希望的是工作更多地集中在真正最小化训练时间方面。

GitHub:
https://github.com/tuomaso/train_mnist_fast

参考链接:
[1]https://www.reddit.com/r/MachineLearning/comments/p1168k/p_training_cnn_to_99_on_mnist_in_less_than_1/


觉得还不错就给我一个小小的鼓励吧!


PyTorch端到端手写单词识别实战:小样本高鲁棒性方案 手写文本识别是计算机视觉中兼具基础性与工程挑战性的任务,其核心难点在于非结构化书写带来的形变、连笔、噪声和个体差异。不同于传统OCR依赖字符切分与独立分类,现代端到端方法(如CNN+LSTM+CTC)将整词图像建模为时序序列,通过连接时序分类(CTC)自动对齐字符,天然规避分割错误。该技术显著提升在低质量图像、小样本场景下的泛化能力,尤其适用于教育作业批改、医疗处方转录、工业巡检记录等真实边缘场景。本文聚焦PyTorch手写单词识别落地实践,涵盖数据增广策略、高度归一化预处理、轻量CRNN架构设计及INT8 阅读详情

相关推荐

手写单词识别实战:PyTorch两阶段检测与识别全流程

手写单词识别是文档数字化与教育AI中的关键基础任务,其本质是将非结构化手写图像转化为标准文本序列。不同于通用OCR,它需应对字迹粘连、光照不均、纸面畸变等真实干扰,核心依赖图像预处理、单词定位、序列建模与词典校验四层技术栈。PyTorch凭借动态图调试能力、内存高效padding机制(如pack_padded_sequence)及对OpenCV等传统视觉算子的无缝集成,成为构建可复现、可解释、可部署流水线的首选框架。本文聚焦‘单词级’识别粒度,覆盖从作业纸照片清洗、U-Net轻量检测、CRNN+CTC识别到

anque1234的博客 335

比用Pytorch框架快200倍!0.76秒后,笔记本上的CNN就搞定了MNIST | 开源

????????关注后回复“进群”,拉你进程序员交流群????????博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI在MNIST上进行训练,可以说是计算机视觉里的“Hello...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 209

卷积神经网络经典架构演进与实战解析

卷积神经网络(CNN)作为计算机视觉领域的核心技术,通过局部连接和权值共享机制实现了高效的特征提取。从LeNet-5的基础卷积操作,到AlexNet引入ReLU和Dropout等关键技术,再到ResNet通过残差连接解决深度网络训练难题,CNN架构的演进始终围绕提升特征表达能力和训练效率展开。这些经典架构不仅奠定了现代深度学习的基础,其设计思想如多尺度特征融合(Inception)、深度残差学习等仍在当前SOTA模型中广泛应用。在实际工程中,结合PyTorch/TensorFlow等框架,这些架构可高效应用

weixin_33841722的博客 316

比用Pytorch框架快200倍!

本文转载自量子位 在MNIST上进行训练,可以说是计算机视觉里的“Hello World”任务了。 而如果使用PyTorch的标准代码训练CNN,一般需要3分钟左右。 但现在,在一台笔记本电脑上就能将时间缩短200多倍。 速度直达0.76秒! 那么,到底是如何仅在一次epoch的训练中就达到99%的准确率的呢? 八步提速200倍 这是一台装有GeForce GTX 1660 Ti GPU的笔记本。 我们需要的还有Python3.x和Pytorch 1.8。 先下载数据集进行训练,每次运行训

weixin_39787242的博客 6222

神经网络实战选型指南:从工业约束倒推CNN/RNN/GAN/GNN/Transformer应用

神经网络不是抽象算法,而是受数据形态、硬件资源与业务约束共同塑造的工程解。卷积神经网络(CNN)擅长处理图像等网格化数据,其感受野设计直接影响微小缺陷识别精度;循环神经网络(RNN)与时序建模能力紧密相关,但在超长工业传感器序列中易受梯度消失制约;生成对抗网络(GAN)可缓解小样本异常检测的数据瓶颈,但稳定性高度依赖判别器对物理规律的尊重;图神经网络(GNN)的价值不在图卷积本身,而在于对零件装配关系、路网拓扑等真实关系的精确编码;自注意力机制赋予Transformer全局建模能力,却因计算复杂度平方增长,

csdn785029689的博客 451

神经网络选型实战指南:按任务与约束匹配最优模型

神经网络不是万能工具箱,而是需精准匹配任务需求的工程组件。理解CNN、RNN、Transformer等主流架构的本质——分别是局部相关性增强器、状态记忆传递器和全局关系建模器——是科学选型的前提。在真实工业场景中,模型效能由输入模态、输出粒度与硬性约束(如边缘设备延迟<100ms、MCU内存<2MB)共同决定,而非单纯追求SOTA指标。本文聚焦神经网络类型与应用场景匹配这一核心问题,结合ResNet50在红外缺陷检测、TCN替代LSTM于实时振动分析、GNN解决电网拓扑推理等200+落地案例,揭示模型选型决

dengwan3818的博客 433

用RNN预测MNIST数据集(pytorch)

一、代码 import torch from torch import nn import torchvision.datasets as datasets import torchvision.transforms as transforms import matplotlib.pyplot as plt from torch.utils.data import DataLoader #%matplotlib inline # 超参数定义 EPOCH = 1 BATCH_SIZE = 64 TIME_S

我的博客 633

前馈神经网络(FFNN):AI底层计算的单向流水线原理与实战

前馈神经网络(FFNN)是深度学习最基础的计算范式,其核心在于数据单向流动、无反馈环路的确定性结构。它通过线性变换与非线性激活函数(如ReLU、Sigmoid)的组合,实现对任意连续函数的逼近,构成万能近似能力的数学基础。该架构具备高可解释性、低推理延迟和强工程可控性,广泛应用于推荐系统排序模型、大模型MLP层、轻量级边缘部署等场景。作为多层感知机(MLP)的上位概念,FFNN强调信息流向约束,而MLP特指含隐藏层的全连接前馈结构——二者在模型选型、参数设计与任务适配中需严格区分。本文深入剖析其神经元计算逻

weixin_30372371的博客 337

PyTorch深度学习实操入门:从MNIST 37行代码到可调试模型

深度学习入门常陷于理论空转与框架黑箱的双重困境——数学推导记不住,API调用不敢动,loss下降看不懂。本文聚焦最基础的PyTorch实操范式,以MNIST为锚点,揭示张量形状变化、梯度流动、设备管理等核心机制的本质。通过手写NumPy反向传播、逐行解析nn.Module构造逻辑、可视化激活与梯度分布,将抽象原理具象为可观察、可验证、可调试的代码行为。强调‘结果先行→归因分析→原理回溯’的学习节奏,规避传统教学中24小时即衰减76%的抽象记忆陷阱。适用于Python语法已掌握、但未接触矩阵运算或GPU编程的

weixin_34218579的博客 402

全息编码技术:AI数据压缩与同态计算的革命性突破

数据压缩技术是提升计算效率的关键环节,传统方法如gzip需要在计算前解压数据,存在显著性能瓶颈。全息编码技术通过数学上的同态特性,实现了在压缩态直接进行运算,这一突破性进展源自对激光全息原理的跨学科借鉴。该技术构建保持运算语义的参考空间,使得神经网络中的矩阵乘法、卷积等操作可以直接在压缩数据上执行。在AI算力需求激增的背景下,全息编码技术为边缘计算、大模型训练等场景带来显著的能耗优化和性能提升。ServaStack作为典型实现,通过双引擎设计在保持计算精度的同时,将内存占用减少8倍,训练能耗降低30-374

weixin_34081595的博客 318

手把手拆解自编码器:工业级AE实战调试与故障排查指南

自编码器(AutoEncoder)是深度学习中实现无监督表征学习的基础架构,其核心原理在于通过信息瓶颈约束,在编码-解码过程中学习数据的紧凑低维表示。技术价值不仅限于图像重建,更体现在异常检测、特征压缩、跨模态对齐等工业AI任务中。实际落地时,模型性能高度依赖对梯度流、激活函数选择、损失函数设计及latent space维度的工程化调优。本文聚焦真实工业场景——如光伏热斑识别、轴承振动分析、PCB缺陷检测——系统解析AE在高动态范围、小样本、强物理约束下的结构适配策略,并结合PyTorch底层实现、Tens

405

PyTorch

PyTorch 是一个开源的机器学习库,主要用于进行计算机视觉(CV)、自然语言处理(NLP)、语音识别等领域的研究和开发。 PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理。

qq_32381773的博客 183

Adam优化器适用场景与失效诊断指南

Adam优化器是一种基于梯度一阶与二阶矩估计的自适应学习率算法,其核心原理是通过指数滑动平均动态调整各参数更新步长。该机制在数据分布稳定、批量足够大、梯度噪声较低时能提升收敛速度与工程效率;但当面临小批量训练、稀疏梯度、强时间相关性或高度非凸损失曲面等现实挑战时,其对梯度方差的误判和v_t估计失真会显著损害泛化性能与训练稳定性。本文聚焦Adam优化器、学习率自适应两大热词,结合梯度方差分析与泛化性能评估,系统梳理五类高风险实战场景,并提供可量化的判断指标与替代方案选型逻辑,适用于CV/NLP/推荐/生成模型

weixin_30522095的博客 383

利用pytorch完成BP神经网络的搭建

使用pytorch完成神经网络的搭建 一.搭建一个最简单的BP神经网络 BP神经网络前向传播: h=w1xy=w2h h=w1x\\ y=w2h h=w1xy=w2h import torch import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D from tqdm import tqdm import time # 超参数定义(由于我们的隐藏层只有一层,所以可以直接定义为超参数

Killer_kali的博客 1万+

深度学习模型压缩技术:量化、剪枝与蒸馏实战

模型压缩是深度学习在边缘计算和嵌入式设备部署中的关键技术,通过降低模型复杂度和计算资源需求,实现高效推理。其核心原理包括参数量化(如FP32到INT8转换)、网络剪枝(移除冗余连接)和知识蒸馏(小模型模仿大模型行为)。这些技术能显著减少模型体积和延迟,同时保持较高精度,广泛应用于移动端、IoT设备和工业检测等场景。以ResNet-50为例,结合量化与剪枝可使模型体积缩小12倍,推理速度提升8倍。当前PyTorch、TensorRT等工具已提供完整量化与剪枝支持,而知识蒸馏中的特征匹配和关系蒸馏进一步提升了小

weixin_30736301的博客 321

ASL手语图像分类实战:29类数据集深度解析与调优指南

手语识别是计算机视觉中典型的细粒度图像分类任务,其核心挑战在于类间相似性高、类内差异大、样本不均衡及背景干扰强。作为基于美国手语(ASL)构建的开源数据集,ASL Alphabet涵盖29个手势类别(含space/del/nothing等关键语法单元),天然具备真实场景下的数据缺陷特征,是检验CNN架构设计、数据增强策略与模型鲁棒性的理想载体。该任务高度依赖手部ROI定位、局部几何特征建模与不平衡学习技术,广泛应用于无障碍交互、远程教育及医疗辅助系统。本文以PyTorch为框架,系统拆解从数据预处理、Res

weixin_34221112的博客 384

图像语义识别PyTorch驱动的深度学习图像处理模型优化与应用研究

在MedicalNet医学影像分割任务中验证表明,学生模型(MobileUNet-16)的Dice系数达到0.783(教师模型0.821),模型体积仅为原始的1/9。MSE(A_t,A_s),成功解决端到端训练中知识传递不充分的问题,在乳腺钼靶图像分类任务中,小样本条件下准确率提升14.2%。实验在Kaggle Skin Cancer数据集上显示,使用Laplace噪声机制的梯度扰动,在保证(ε=1,δ=1e-5)的隐私预算下,模型收敛至医疗诊断标准准确率(94.2%)仅增加2个epoch的训练时间。

iBaaRUAw的博客 619

无需Root!用VirtualXposed+JustTrustMe在安卓高版本上抓包拼多多API数据

本文详细介绍了在安卓高版本设备上无需Root权限即可抓取拼多多API数据的完整方案,通过VirtualXposed与JustTrustMe组合技术,有效绕过SSL Pinning限制。文章涵盖工具准备、环境配置、应用处理及实战分析,特别针对PDD应用的混合通信策略提供了专业解决方案,适合开发者进行竞品分析和数据采集。

weixin_28678151的博客 455
上一篇: OCR文字识别—基于CTC/Attention/ACE的三大解码算法
下一篇: 牛X,原来还能这样卷...
Wang_AI
博客等级 码龄12年 997粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值