社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

使用pytorch构建深度学习模型必须知道的9个基础层

人工智能学习指南 • 5 月前 • 143 次点击  

在使用PyTorch构建深度学习模型时,了解关键层至关重要,无论是视觉、语言建模、时间序列还是音频领域的模型,这些层都是必需的基本元素。

为了让大家更好的 学习神经网络和pytorch,小墨还为大家准备相关学习资料(基础到进阶全部包含)。



图中的资料都已下载打包


大家可以任意添加一位小助手获取(长按二维码图片添加既可),记得发送文章标题截图给小助手哦!


   







1. 线性(全连接)层






torch.nn.Linear

线性层通过对输入数据的特征向量乘以权重矩阵(并可选择加上偏置)来应用线性变换。

它常用于全连接神经网络、Transformer模型中的块、分类任务以及许多模型的最终层。







2. 卷积层






torch.nn.Conv1d(序列),torch.nn.Conv2d(图像),

torch.nn.Conv3d(视频、3D)

卷积层应用卷积操作以捕获空间或时间依赖性,它在输入的不同部分应用相同的权重。

它在计算机视觉(如用于图像分类的卷积神经网络)中至关重要,同时也因其计算效率而在序列数据、视频和3D模型中得到应用。







3. 批量归一化层






torch.nn.BatchNorm1d(序列),

torch.nn.BatchNorm2d(图像),

torch.nn.BatchNorm3d(视频、3D)

批量归一化层对输入进行归一化,使其具有学习的均值和方差,从而加速训练并提高模型稳定性。

它常用于深度神经网络中以改善收敛性和性能,例如在计算机视觉模型中。







4. Dropout层






torch.nn.Dropout,torch.nn.Dropout1d(序列),torch.nn.Dropout2d(图像),torch.nn.Dropout3d(视频、3D)

Dropout层在训练过程中随机将输入单元的一部分设置为零,以促进后续层中权重的更好利用。

Dropout1d、Dropout2d和Dropout3d分别将此功能扩展到1D、2D和3D输入。

它们常用于提高各种类型神经网络的泛化能力,尤其是与线性层一起使用时。







5. 嵌入层






torch.nn.Embedding

嵌入层将离散输入数据(如单词)映射为连续向量表示。

它在自然语言处理任务(如大型语言模型中的词嵌入)中至关重要。







6. 激活层






torch.nn.ReLU,torch.nn.Sigmoid,torch.nn.Tanh,torch.nn.Softmax

激活层对输入应用非线性函数,使模型能够学习复杂模式。

它们在神经网络中的每一层之后使用以引入非线性,ReLU常用于隐藏层,而Softmax用于输出层进行分类任务。







7. 注意力层






torch.nn.MultiheadAttention

多头注意力层允许模型在进行预测时关注输入序列的不同部分。

它广泛用于基于Transformer的模型(如大型语言模型)中,用于机器翻译、文本摘要和其他自然语言处理应用。







8. 池化层






torch.nn.MaxPool1d(序列),torch.nn.AvgPool1d(序列),torch.nn.MaxPool2d(图像),

torch.nn.AvgPool2d(图像),torch.nn.MaxPool3d(视频、3D),torch.nn.AvgPool3d(视频、3D)

池化层减少输入的空间维度,通常用于卷积层之后以下采样特征图。

最大池化从输入的每个区域选择最大值,而平均池化计算平均值。

这些层有助于减少计算负载,并引入信息瓶颈,有助于防止过拟合。







9. 填充层






torch.nn.ConstantPad1d(序列),

torch.nn.ConstantPad2d(图像),

torch.nn.ConstantPad3d(视频、3D)

填充层向输入数据添加填充,以确保不同大小的输入被标准化为相同大小,以便它们可以作为一批并行处理。

这在卷积或序列模型中特别有用,以控制输出的空间维度,ConstantPad1d、ConstantPad2d和ConstantPad3d分别将此功能扩展到1D、2D和3D输入。


另外我还给大家准备了一些机器学习、深度学习、神经网络资料大家可以看看以下文章(文章中提到的资料都打包好了,都可以直接添加小助手获取)

<


 人工智能资料分享 



>








零基础学习路线(点击图片即可跳转)











深度学习中文教程书(点击图片即可跳转)


神经网络最全学习资料(点击图片即可跳转)


大家觉得这篇文章有帮助的话记得分享给你的死党闺蜜、同学、朋友、老师、敌蜜!



B站:AI秃秃学长小墨



关注小墨

获取最新AI技能+最肝AI干货

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/175941
 
143 次点击