PyTorch提供了torch.nn模块,以帮助我们创建和训练神经网络。我们将首先在MNIST数据集上训练基本的神经网络,不使用这些模型的任何特征。我们仅使用基本的PyTorch张量功能,然后逐步添加torch.nn中的一个特征。

torch.nn为我们提供了许多类和模块,用于实现和训练神经网络。

nn模块包含以下模块和类:

序号类和模块描述
1torch.nn.Parameter模块参数的张量类型。
2容器所有神经网络模块的基类。
2.1torch.nn.Module所有神经网络模块的基类。
2.2torch.nn.Sequential顺序容器,按传递顺序添加模块。
2.3torch.nn.ModuleList在列表中保存子模块。
2.4torch.nn.ModuleDict在字典中保存子模块。
2.5torch.nn.ParameterList在列表中保存参数。
2.6torch.nn.parameterDict在字典中保存参数。
3卷积层对输入信号应用一维卷积,二维卷积等。
3.1torch.nn.Conv1d对输入信号应用一维卷积。
3.2torch.nn.Conv2d对输入信号应用二维卷积。
3.3torch.nn.Conv3d对输入信号应用三维卷积。
3.4torch.nn.ConvTranspose1d对输入图像应用一维转置卷积操作。
3.5torch.nn.ConvTranspose2d对输入图像应用二维转置卷积操作。
3.6torch.nn.ConvTranspose3d对输入图像应用三维转置卷积操作。
3.7torch.nn.Unfold从批量输入张量中提取滑动局部块。
3.8torch.nn.Fold将一系列滑动局部块组合成一个大的包含张量。
4池化层应用一维最大池化,二维最大池化等。
4.1torch.nn.MaxPool1d应用一维最大池化。
4.2torch.nn.MaxPool2d应用二维最大池化。
4.3torch.nn.MaxPool3d应用三维最大池化。
4.4torch.nn.MaxUnpool1d计算 MaxPool1d 的部分逆操作。
4.5torch.nn.MaxUnpool2d计算 MaxPool2d 的部分逆操作。
4.6torch.nn.MaxUnpool3d计算 MaxPool3d 的部分逆操作。
4.7torch.nn.AvgPool1d应用一维平均池化。
4.8torch.nn.AvgPool2d应用二维平均池化。
4.9torch.nn.AvgPool3d应用三维平均池化。
4.10torch.nn.FractionalMaxPool2d应用二维分数最大池化。
4.11torch.nn.LPPool1d应用一维功率平均池化。
4.12torch.nn.LPPool2d应用二维功率平均池化。
4.13torch.nn.AdaptiveMaxPool1d应用一维自适应最大池化。
4.14torch.nn.AdaptiveMaxPool2d应用二维自适应最大池化。
4.15torch.nn.AdaptiveMaxPool3d应用三维自适应最大池化。
4.16torch.nn.AdaptiveAvgPool1d应用一维自适应平均池化。
4.17torch.nn.AdaptiveAvgPool2d应用二维自适应平均池化。
4.18torch.nn.AdaptiveAvgPool3d应用三维自适应平均池化。
5填充层使用反射、复制、零等方法填充输入张量。
5.1torch.nn.ReflectionPad1d使用输入边界的反射填充输入张量。
5.2torch.nn.ReplicationPad1d使用输入边界的复制填充输入张量。
5.3torch.nn.ZeroPad2d使用零填充输入张量的边界。
.........
6非线性激活层(加权和,非线性)应用ELU、硬收缩等逐元素函数。
6.1torch.nn.ELU应用逐元素ELU函数。
6.2torch.nn.Hardshrink应用逐元素硬收缩函数。
6.3torch.nn.LeakyReLU应用逐元素LeakyReLU函数。
.........
7非线性激活层(其他)应用软最小值、softmax等逐元素函数。
7.1torch.nn.Softmin应用逐元素软最小值函数。
7.2torch.nn.Softmax应用逐元素softmax函数。
.........
8归一化层应用批归一化、组归一化、实例归一化等。
8.1torch.nn.BatchNorm1d应用于2D或3D输入的批归一化。
8.2torch.nn.GroupNorm应用于输入小批量的组归一化。
.........
9循环层应用RNN、LSTM、GRU等。
9.1torch.nn.RNN应用多层Elman RNN。
9.2torch.nn.LSTM应用多层长短时记忆(LSTM)RNN。
9.3torch.nn.GRU应用多层门控循环单元(GRU)RNN。
.........
10线性层应用线性转换。
10.1torch.nn.Identity占位符身份运算符,无关参数。
10.2torch.nn.Linear对输入数据应用线性转换。
10.3torch.nn.Bilinear对输入数据应用双线性转换。
.........
11丢失层用于正则化和防止神经元共适应的Dropout层。
11.1torch.nn.Dropout用于正则化和防止神经元共适应的Dropout层。
11.2torch.nn.AlphaDropout应用于输入的Alpha Dropout。
.........
12稀疏层用于存储和检索Word Embeddings等。
12.1torch.nn.Embedding用于存储和检索Word Embeddings。
12.2torch.nn.EmbeddingBag在不实例化中间嵌入的情况下计算嵌入的和或均值。
.........
13距离函数计算余弦相似性、成对距离等。
13.1torch.nn.CosineSimilarity计算x1和x2之间的余弦相似性。
13.2torch.nn.PairwiseDistance计算向量v1和v2之间的批次对距离。
.........
14损失函数用于分类、回归等任务的损失函数。
14.1torch.nn.L1Loss测量输入x和目标y中每个元素之间的平均绝对误差。
14.2torch.nn.MSELoss测量输入x和目标y中每个元素之间的平均平方误差。
.........
15视觉层重新排列张量元素,上采样多通道数据等。
15.1torch.nn.PixelShuffle重新排列张量元素。
15.2torch.nn.Upsample上采样多通道数据。
.........
16DataParallel层(多GPU,分布式)模块级别实现数据并行性,分布式数据并行性等。
16.1torch.nn.DataParallel模块级别实现数据并行性。
16.2torch.nn.DistributedDataParallel模块级别实现分布式数据并行性。
.........
17实用工具clip_grad_norm_等。
17.1torch.nn.clip_grad_norm_对所有模型参数进行梯度裁剪。

参考资料:

https://pytorch.org/docs/stable/nn.html

标签: Pytorch, Pytorch教程, Pytorch安装, Pytorch入门, Pytorch下载, Pytorch指南, Pytorch编程, Pytorch入门教程, Pytorch初级教程, Pytorch进阶, Pytorch高级教程, Pytorch学习, Pytorch库