求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 


业务架构设计
4月18-19日 在线直播



基于UML和EA进行系统分析设计
4月25-26日 北京+在线



AI 智能化软件测试方法与实践
5月23-24日 上海+在线
 
追随技术信仰

随时听讲座
每天看新闻
 
 
PyTorch 教程
1. PyTorch 简介
2. PyTorch 安装
3. PyTorch 基础
4. PyTorch 张量
5. PyTorch 神经网络基础
6. PyTorch 第一个神经网络
7. PyTorch 数据处理与加载
8. PyTorch 线性回归
9. PyTorch 卷积神经网络
10. PyTorch 循环神经网络
11. PyTorch 数据集
12. PyTorch 数据转换
13. Pytorch torch 参考手册
14. PyTorch torch.nn 手册
15. Transformer 模型
16. PyTorch Transformer
 

 
目录
PyTorch torch.nn 参考手册
83 次浏览
1次  

PyTorch 的 torch.nn 模块是构建和训练神经网络的核心模块,它提供了丰富的类和函数来定义和操作神经网络。

以下是 torch.nn 模块的一些关键组成部分及其功能:

1、nn.Module 类:

  • nn.Module 是所有自定义神经网络模型的基类。用户通常会从这个类派生自己的模型类,并在其中定义网络层结构以及前向传播函数(forward pass)。

2、预定义层(Modules):

  • 包括各种类型的层组件,例如卷积层(nn.Conv1d, nn.Conv2d, nn.Conv3d)、全连接层(nn.Linear)、激活函数(nn.ReLU, nn.Sigmoid, nn.Tanh)等。

3、容器类:

  • nn.Sequential:允许将多个层按顺序组合起来,形成简单的线性堆叠网络。
  • nn.ModuleList 和 nn.ModuleDict:可以动态地存储和访问子模块,支持可变长度或命名的模块集合。

4、损失函数(Loss Functions):

  • torch.nn 包含了一系列用于衡量模型预测与真实标签之间差异的损失函数,例如均方误差损失(nn.MSELoss)、交叉熵损失(nn.CrossEntropyLoss)等。

5、实用函数接口(Functional Interface):

  • nn.functional(通常简写为 F),包含了许多可以直接作用于张量上的函数,它们实现了与层对象相同的功能,但不具有参数保存和更新的能力。例如,可以使用 F.relu() 直接进行 ReLU 操作,或者 F.conv2d() 进行卷积操作。

6、初始化方法:

  • torch.nn.init 提供了一些常用的权重初始化策略,比如 Xavier 初始化 (nn.init.xavier_uniform_()) 和 Kaiming 初始化 (nn.init.kaiming_uniform_()),这些对于成功训练神经网络至关重要。

PyTorch torch.nn 模块参考手册

神经网络容器

类/函数 描述
torch.nn.Module 所有神经网络模块的基类。
torch.nn.Sequential(*args) 按顺序组合多个模块。
torch.nn.ModuleList(modules) 将子模块存储在列表中。
torch.nn.ModuleDict(modules) 将子模块存储在字典中。
torch.nn.ParameterList(parameters) 将参数存储在列表中。
torch.nn.ParameterDict(parameters) 将参数存储在字典中。

线性层

类/函数 描述
torch.nn.Linear(in_features, out_features) 全连接层。
torch.nn.Bilinear(in1_features, in2_features, out_features) 双线性层。

卷积层

类/函数 描述
torch.nn.Conv1d(in_channels, out_channels, kernel_size) 一维卷积层。
torch.nn.Conv2d(in_channels, out_channels, kernel_size) 二维卷积层。
torch.nn.Conv3d(in_channels, out_channels, kernel_size) 三维卷积层。
torch.nn.ConvTranspose1d(in_channels, out_channels, kernel_size) 一维转置卷积层。
torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size) 二维转置卷积层。
torch.nn.ConvTranspose3d(in_channels, out_channels, kernel_size) 三维转置卷积层。

池化层

类/函数 描述
torch.nn.MaxPool1d(kernel_size) 一维最大池化层。
torch.nn.MaxPool2d(kernel_size) 二维最大池化层。
torch.nn.MaxPool3d(kernel_size) 三维最大池化层。
torch.nn.AvgPool1d(kernel_size) 一维平均池化层。
torch.nn.AvgPool2d(kernel_size) 二维平均池化层。
torch.nn.AvgPool3d(kernel_size) 三维平均池化层。
torch.nn.AdaptiveMaxPool1d(output_size) 一维自适应最大池化层。
torch.nn.AdaptiveAvgPool1d(output_size) 一维自适应平均池化层。
torch.nn.AdaptiveMaxPool2d(output_size) 二维自适应最大池化层。
torch.nn.AdaptiveAvgPool2d(output_size) 二维自适应平均池化层。
torch.nn.AdaptiveMaxPool3d(output_size) 三维自适应最大池化层。
torch.nn.AdaptiveAvgPool3d(output_size) 三维自适应平均池化层。

激活函数

类/函数 描述
torch.nn.ReLU() ReLU 激活函数。
torch.nn.Sigmoid() Sigmoid 激活函数。
torch.nn.Tanh() Tanh 激活函数。
torch.nn.Softmax(dim) Softmax 激活函数。
torch.nn.LogSoftmax(dim) LogSoftmax 激活函数。
torch.nn.LeakyReLU(negative_slope) LeakyReLU 激活函数。
torch.nn.ELU(alpha) ELU 激活函数。
torch.nn.SELU() SELU 激活函数。
torch.nn.GELU() GELU 激活函数。

损失函数

类/函数 描述
torch.nn.MSELoss() 均方误差损失。
torch.nn.L1Loss() L1 损失。
torch.nn.CrossEntropyLoss() 交叉熵损失。
torch.nn.NLLLoss() 负对数似然损失。
torch.nn.BCELoss() 二分类交叉熵损失。
torch.nn.BCEWithLogitsLoss() 带 Sigmoid 的二分类交叉熵损失。
torch.nn.KLDivLoss() KL 散度损失。
torch.nn.HingeEmbeddingLoss() 铰链嵌入损失。
torch.nn.MultiMarginLoss() 多分类间隔损失。
torch.nn.SmoothL1Loss() 平滑 L1 损失。

归一化层

类/函数 描述
torch.nn.BatchNorm1d(num_features) 一维批归一化层。
torch.nn.BatchNorm2d(num_features) 二维批归一化层。
torch.nn.BatchNorm3d(num_features) 三维批归一化层。
torch.nn.LayerNorm(normalized_shape) 层归一化。
torch.nn.InstanceNorm1d(num_features) 一维实例归一化层。
torch.nn.InstanceNorm2d(num_features) 二维实例归一化层。
torch.nn.InstanceNorm3d(num_features) 三维实例归一化层。
torch.nn.GroupNorm(num_groups, num_channels) 组归一化。

循环神经网络层

类/函数 描述
torch.nn.RNN(input_size, hidden_size) 简单 RNN 层。
torch.nn.LSTM(input_size, hidden_size) LSTM 层。
torch.nn.GRU(input_size, hidden_size) GRU 层。
torch.nn.RNNCell(input_size, hidden_size) 简单 RNN 单元。
torch.nn.LSTMCell(input_size, hidden_size) LSTM 单元。
torch.nn.GRUCell(input_size, hidden_size) GRU 单元。

嵌入层

类/函数 描述
torch.nn.Embedding(num_embeddings, embedding_dim) 嵌入层。

Dropout 层

类/函数 描述
torch.nn.Dropout(p) Dropout 层。
torch.nn.Dropout2d(p) 2D Dropout 层。
torch.nn.Dropout3d(p) 3D Dropout 层。

实用函数

函数 描述
torch.nn.functional.relu(input) 应用 ReLU 激活函数。
torch.nn.functional.sigmoid(input) 应用 Sigmoid 激活函数。
torch.nn.functional.softmax(input, dim) 应用 Softmax 激活函数。
torch.nn.functional.cross_entropy(input, target) 计算交叉熵损失。
torch.nn.functional.mse_loss(input, target) 计算均方误差损失。

实例

import torch
import torch.nn as nn

# 定义一个简单的神经网络
class SimpleNet(nn.Module):
    def __init__(self):
        super(SimpleNet, self).__init__()
        self.fc1 = nn.Linear(10, 20)
        self.relu = nn.ReLU()
        self.fc2 = nn.Linear(20, 1)

    def forward(self, x):
        x = self.fc1(x)
        x = self.relu(x)
        x = self.fc2(x)
        return x

# 创建模型和输入
model = SimpleNet()
input = torch.randn(5, 10)
output = model(input)
print(output)

如果需要更详细的信息,可以参考 PyTorch 官方文档


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



83 次浏览
1次