Pytorch学习笔记-03 模型创建

简介: Pytorch学习笔记-03 模型创建

模型创建步骤



两要素:


构建子模块


init()


拼接子模块


forward()


nn.Module



nn.Module


parameters : 存储管理 nn.Parameter 类

modules : 存储管理 nn.Module 类

buffers :存储管理缓冲属性,如 BN 层中的 running_mean


总结


一个 module 可以包含多个子 module

一个 module 相当于一个运算,必须实现 forward() 函数

每个 module 都有 8 个字典管理它的属性


模型容器 Containers


Sequential

nn.Sequential是 nn.module 的容器,用于 按顺序 包装一组网络层


顺序性 :各网络层之间严格按照顺序构建

自带 forward()forward():自带的 forward 里,通过 for 循环依次执行前向传播运算


ModuleList

nn.ModuleList


append() 在 ModuleList 后面 添加 网络层

extend():拼接 两个 ModuleList

insert() 指定在 ModuleList 中位置 插入 网络层


ModuleLDict

nn.ModuleDict

是 nn.module 的容器,用于包装一组网络层,以 索引 方式调用网络层

主要方法:


clear() 清空 ModuleDict

items() 返回可迭代的键值对 (key value pairs)

keys() 返回字典的键 (key)

values() 返回字典的值 (values)

pop() 返回一对键值,并从字典中删除


总结

nn.Sequential 顺序性 ,各网络层之间严格按顺序执行,常用于 block 构建

nn.ModuleList 迭代性 ,常用于大量重复网构建,通过 for 循环实现重复构建

nn.ModuleDict 索引性 ,常用于可选择的网络层


卷积层


nn.Conv2d

功能:对多个二维信号进行二维卷积

主要参数:


in_channels :输入通道数

out_channels :输出通道数,等价于卷积核个数

kernel_size :卷积核尺寸

stride :步长

padding :填充个数

dilation :空洞卷积大小 (用于增大感受野

groups :分组卷积设置( 模型压缩

bias :偏置

卷积维度:一般情况下 ,卷积核在几个维度上滑动,就是几维卷积


转置卷积

转置卷积又称为反卷积Deconvolution 和部分跨越卷积 Fractionallystrided Convolution ) 用于 对图像进行上采样 UpSample


池化


池化运算:对信号进行收集 ”并 总结 ”,类似水池收集水资源,因而得名池化层


nn.MaxPool2d

功能:对二维信号(图像)进行最大值池化

主要参数:


kernel_size :池化核尺寸

stride :步长

padding :填充个数

dilation :池化核间隔大小

ceil_mode :尺寸向上取整

return_indices :记录池化像素索引


nn.AvgPool2d

功能:对二维信号(图像)进行平均值池化

主要参数:


kernel_size :池化核尺寸

stride :步长

padding :填充个数

ceil_mode :尺寸向上取整

count_include_pad :填充值用


nn.MaxUnpool2d

功能:对二维信号(图像)进行最大值池化上采样

主要参数:


kernel_size :池化核尺寸

stride :步长

padding :填充个数


激活函数


激活函数对特征进行非线性变换,赋予多层神经网络具有深度 的意义


nn.Sigmoid

特性:


输出值在 ( 0,1),符合概率

导数范围是 [0, 0.25)易导致梯度消失

输出为非 0 均值,破坏数据分布

nn.tanh

特性:


输出值在 (-1,1),数据符合 0 均值

导数范围是 (0,1) 易导致梯度消失

nn.ReLU

特性:


输出值均为正数,负半轴导致死神经元

导数是 1, 缓解梯度消失,但易引发梯度爆炸

nn.LeakyReLU

negative_slope : 负半轴斜率


nn.PReLU

init : 可学习斜率


nn.RReLU

lower : 均匀分布下限


特性:


输出值均为正数,负半轴导致死神经元

导数是 1, 缓解梯度消失,但易引发梯度爆炸

nn.LeakyReLU

negative_slope : 负半轴斜率


nn.PReLU

init : 可学习斜率


nn.RReLU

lower : 均匀分布下限

upper 均匀分布上限

目录
相关文章
|
6月前
|
机器学习/深度学习 存储 PyTorch
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
Neural ODE将神经网络与微分方程结合,用连续思维建模数据演化,突破传统离散层的限制,实现自适应深度与高效连续学习。
457 3
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
|
5月前
|
边缘计算 人工智能 PyTorch
130_知识蒸馏技术:温度参数与损失函数设计 - 教师-学生模型的优化策略与PyTorch实现
随着大型语言模型(LLM)的规模不断增长,部署这些模型面临着巨大的计算和资源挑战。以DeepSeek-R1为例,其671B参数的规模即使经过INT4量化后,仍需要至少6张高端GPU才能运行,这对于大多数中小型企业和研究机构来说成本过高。知识蒸馏作为一种有效的模型压缩技术,通过将大型教师模型的知识迁移到小型学生模型中,在显著降低模型复杂度的同时保留核心性能,成为解决这一问题的关键技术之一。
|
7月前
|
PyTorch 算法框架/工具 异构计算
PyTorch 2.0性能优化实战:4种常见代码错误严重拖慢模型
我们将深入探讨图中断(graph breaks)和多图问题对性能的负面影响,并分析PyTorch模型开发中应当避免的常见错误模式。
414 9
|
9月前
|
机器学习/深度学习 存储 PyTorch
PyTorch + MLFlow 实战:从零构建可追踪的深度学习模型训练系统
本文通过使用 Kaggle 数据集训练情感分析模型的实例,详细演示了如何将 PyTorch 与 MLFlow 进行深度集成,实现完整的实验跟踪、模型记录和结果可复现性管理。文章将系统性地介绍训练代码的核心组件,展示指标和工件的记录方法,并提供 MLFlow UI 的详细界面截图。
384 2
PyTorch + MLFlow 实战:从零构建可追踪的深度学习模型训练系统
|
9月前
|
机器学习/深度学习 PyTorch 算法框架/工具
提升模型泛化能力:PyTorch的L1、L2、ElasticNet正则化技术深度解析与代码实现
本文将深入探讨L1、L2和ElasticNet正则化技术,重点关注其在PyTorch框架中的具体实现。关于这些技术的理论基础,建议读者参考相关理论文献以获得更深入的理解。
270 4
提升模型泛化能力:PyTorch的L1、L2、ElasticNet正则化技术深度解析与代码实现
|
10月前
|
机器学习/深度学习 PyTorch 编译器
深入解析torch.compile:提升PyTorch模型性能、高效解决常见问题
PyTorch 2.0推出的`torch.compile`功能为深度学习模型带来了显著的性能优化能力。本文从实用角度出发,详细介绍了`torch.compile`的核心技巧与应用场景,涵盖模型复杂度评估、可编译组件分析、系统化调试策略及性能优化高级技巧等内容。通过解决图断裂、重编译频繁等问题,并结合分布式训练和NCCL通信优化,开发者可以有效提升日常开发效率与模型性能。文章为PyTorch用户提供了全面的指导,助力充分挖掘`torch.compile`的潜力。
1075 17
|
11月前
|
存储 自然语言处理 PyTorch
从零开始用Pytorch实现LLaMA 4的混合专家(MoE)模型
近期发布的LLaMA 4模型引入混合专家(MoE)架构,以提升效率与性能。尽管社区对其实际表现存在讨论,但MoE作为重要设计范式再次受到关注。本文通过Pytorch从零实现简化版LLaMA 4 MoE模型,涵盖数据准备、分词、模型构建(含词元嵌入、RoPE、RMSNorm、多头注意力及MoE层)到训练与文本生成全流程。关键点包括MoE层实现(路由器、专家与共享专家)、RoPE处理位置信息及RMSNorm归一化。虽规模小于实际LLaMA 4,但清晰展示MoE核心机制:动态路由与稀疏激活专家,在控制计算成本的同时提升性能。完整代码见链接,基于FareedKhan-dev的Github代码修改而成。
476 9
从零开始用Pytorch实现LLaMA 4的混合专家(MoE)模型
|
10月前
|
机器学习/深度学习 搜索推荐 PyTorch
基于昇腾用PyTorch实现CTR模型DIN(Deep interest Netwok)网络
本文详细讲解了如何在昇腾平台上使用PyTorch训练推荐系统中的经典模型DIN(Deep Interest Network)。主要内容包括:DIN网络的创新点与架构剖析、Activation Unit和Attention模块的实现、Amazon-book数据集的介绍与预处理、模型训练过程定义及性能评估。通过实战演示,利用Amazon-book数据集训练DIN模型,最终评估其点击率预测性能。文中还提供了代码示例,帮助读者更好地理解每个步骤的实现细节。

热门文章

最新文章

推荐镜像

更多