news 2026/4/3 4:54:56

多层感知机与正则化技术:高级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/3/31 21:24:30

ContextMenuManager终极指南:3步彻底清理杂乱Windows右键菜单

ContextMenuManager终极指南:3步彻底清理杂乱Windows右键菜单 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 还在为Windows右键菜单中那些无用的软件…

作者头像 李华
网站建设 2026/3/15 1:08:25

基于逻辑门的多层感知机FPGA设计:新手入门必看

从与门到神经元:在FPGA上用逻辑门“手搓”一个多层感知机你有没有想过,一个能识别数字的神经网络,其实可以完全由“与门、或门、非门”这些最基础的数字电路搭出来?听起来像极客的玩具实验——但恰恰是这种“从零造车”的过程&…

作者头像 李华
网站建设 2026/3/30 20:00:33

PyTorch-CUDA-v2.9镜像助力跨境电商多语言翻译

PyTorch-CUDA-v2.9镜像助力跨境电商多语言翻译 在全球电商加速融合的今天,用户打开一个商品页面,下一秒就能看到自己母语描述的产品详情——这背后并非魔法,而是神经机器翻译(NMT)在GPU集群上高速运转的结果。对于跨境…

作者头像 李华
网站建设 2026/4/1 2:55:22

边缘计算场景下PyTorch-CUDA-v2.9镜像的应用探索

边缘计算场景下PyTorch-CUDA-v2.9镜像的应用探索 在智能制造工厂的质检产线上,一台搭载RTX A10G显卡的边缘服务器正实时处理来自高清摄像头的视频流。深度学习模型每秒完成上百次缺陷检测推理,响应延迟低于80毫秒——这背后并非复杂的定制化部署流程&…

作者头像 李华
网站建设 2026/3/31 2:53:14

PyTorch-CUDA-v2.9镜像在CNN图像分类任务中的应用

PyTorch-CUDA-v2.9镜像在CNN图像分类任务中的应用 在现代深度学习项目中,一个常见的尴尬场景是:算法工程师终于写完了一版精巧的图像分类模型,信心满满地准备训练,结果运行 torch.cuda.is_available() 却返回了 False。排查数小时…

作者头像 李华
网站建设 2026/3/10 1:30:12

LIME与SHAP解释PyTorch图像分类结果

LIME与SHAP解释PyTorch图像分类结果 在医疗影像诊断系统中,一个深度学习模型判断某张肺部CT扫描图存在恶性肿瘤,置信度高达96%。但医生不会轻易采信这个结果——他们真正关心的是:模型到底看到了什么?是病灶本身,还是扫…

作者头像 李华