news 2026/8/29 1:52:32

多层感知机与正则化技术:高级API实现多层感知机

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多层感知机与正则化技术:高级API实现多层感知机

多层感知机的简洁实现

学习目标

通过本课程,学员将了解到如何更简洁地实现多层感知机,具体来说,学员会学习使用高级API更简洁地实现多层感知机、多层感知机的实现与softmax回归的实现相比增加了带有激活函数的隐藏层、以及如何将与模型架构有关的内容独立出来等重要内容。

相关知识点

  • 多层感知机简洁实现

学习内容

1 多层感知机简洁实现

本课程将介绍通过高级API更简洁地实现多层感知机
首先,我们使用PyTorch的torch库,并引入必要的模块,如nn(神经网络模块)和d2l(用于简化代码的工具库)。

%pip install d2l==0.17.6--no-deps
importtorchfromtorchimportnnimporttorchvisionfromtorch.utilsimportdatafromtorch.utils.dataimportDataLoaderfromtorchvisionimporttransformsfromd2limporttorchasd2l
1.1 构建模型

与softmax回归的简洁实现相比,
唯一的区别是我们添加了2个全连接层(之前只添加了1个全连接层)。

第一层是隐藏层,它包含256个隐藏单元,并使用了ReLU激活函数。ReLU(Rectified Linear Unit)激活函数用于引入非线性,使得模型能够学习更复杂的模式。
第二层是输出层。用于生成最终的分类结果。
接下来,我们定义一个权重初始化函数init_weights,用于初始化模型中的线性层权重。这里我们使用正态分布初始化权重,标准差设为0.01。
然后,我们使用net.apply(init_weights)将初始化函数应用到模型的所有层。

net=nn.Sequential(nn.Flatten(),nn.Linear(784,256),nn.ReLU(),nn.Linear(256,10))definit_weights(m):iftype(m)==nn.Linear:nn.init.normal_(m.weight,std=0.01)net.apply(init_weights);
1.2 训练过程

训练过程的实现与我们实现softmax回归时完全相同,这种模块化设计使我们能够将与模型架构有关的内容独立出来。
我们设置批量大小batch_size为256,学习率lr为0.1,训练轮数num_epochs为10。损失函数使用交叉熵损失CrossEntropyLoss,优化器使用随机梯度下降SGD

batch_size,lr,num_epochs=256,0.1,10loss=nn.CrossEntropyLoss(reduction='none')trainer=torch.optim.SGD(net.parameters(),lr=lr)

然后,我们加载Fashion-MNIST数据集,并开始训练模型。

# 下载数据!wget https://model-community-picture.obs.cn-north-4.myhuaweicloud.com/ascend-zone/notebook_datasets/f3c4da6614e611f0b571fa163edcddae/FashionMNIST.zip
!unzip FashionMNIST.zip
# 通过ToTensor实例将图像数据从PIL类型变换成32位浮点数格式,# 并除以255使得所有像素的数值均在0~1之间trans=transforms.ToTensor()mnist_train=torchvision.datasets.FashionMNIST(root="./data",train=True,transform=trans,download=False)mnist_test=torchvision.datasets.FashionMNIST(root="./data",train=False,transform=trans,download=False)
# 使用 DataLoader 实现分批次加载train_iter=DataLoader(mnist_train,batch_size=batch_size,shuffle=True)test_iter=DataLoader(mnist_test,batch_size=batch_size,shuffle=False)
d2l.train_ch3(net,train_iter,test_iter,loss,num_epochs,trainer)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 22:46:10

沉浸式体验的测试维度重构

1. 感官同步性验证 视觉滞后阈值测试:采用高帧率捕捉设备(如240Hz光学追踪系统)监测渲染延迟,确保动作到光子时间≤15ms 多模态协同基准:HTC VIVE Focus 3实测案例显示,当音频延迟超过80ms时,3…

作者头像 李华
网站建设 2026/8/29 0:19:39

利用PyTorch-CUDA-v2.9镜像加速BERT模型微调过程

利用PyTorch-CUDA-v2.9镜像加速BERT模型微调过程 在现代自然语言处理(NLP)项目中,我们常常面临这样的窘境:手握强大的预训练模型如BERT,却卡在环境配置和训练效率的瓶颈上。一个简单的微调任务,本该花几天完…

作者头像 李华
网站建设 2026/8/24 18:35:49

AMD锐龙嵌入式芯片解决方案:项目应用完整示例

当“小钢炮”遇上“大力士”:AMD锐龙嵌入式ARM的工业智能实战手记 最近在调试一个半导体厂的AOI(自动光学检测)系统时,我再次深刻体会到—— 算力,正在重新定义工业边缘的边界 。 过去我们总认为,PLC 低…

作者头像 李华
网站建设 2026/8/24 18:35:56

零基础掌握三极管放大电路的静态工作点设置

从零开始搞懂三极管放大电路:静态工作点到底怎么设? 你有没有遇到过这种情况? 搭了一个三极管放大电路,信号一输入,输出波形不是削顶就是压底——明明理论讲得通,实际却失真得厉害。问题出在哪&#xff1f…

作者头像 李华
网站建设 2026/8/28 14:11:40

高效Transformer模型训练利器:PyTorch-CUDA-v2.9环境推荐

高效Transformer模型训练利器:PyTorch-CUDA-v2.9环境推荐 在当前大模型研发如火如荼的背景下,一个常见的场景是:研究者刚刚复现完一篇顶会论文,却卡在了环境配置上——“CUDA not available”、“cudnn version mismatch”、“PyT…

作者头像 李华