PyTorch中的nn.LeakyReLU()、nn.Module和nn.ModuleList

一.nn.LeakyReLU()函数

  在 PyTorch 中,nn.LeakyReLU() 是一个激活函数,用于引入非线性性到神经网络中。Leaky ReLU 是修正线性单元(ReLU)的一种变体,它在输入为负数时不是完全置零,而是引入一个小的负斜率。nn.LeakyReLU() 的初始化参数如下:

  • negative_slope(默认为 0.01):负斜率,指定当输入为负数时的斜率值。通常设置为一个小的正数。

  举个例子,如下所示:

import torch
import torch.nn as nn

# 创建 LeakyReLU 激活函数实例
leaky_relu = nn.LeakyReLU(negative_slope=0.01)

# 假设有一个输入张量 x
x = torch.randn(3, 3)

# 将输入张量传递给 LeakyReLU 激活函数
output = leaky_relu(x)

  在这个例子中,negative_slope 参数被设置为 0.01,但可根据需求调整。Leaky ReLU 的主要优点之一是在输入为负数时允许一定的信息流,这有助于避免梯度消失问题,尤其在深层网络中。

二.nn.Module 模块

  nn.Module 是 PyTorch 中所有神经网络模块的基类。任何自定义神经网络层、模型或其他组件都应该继承自 nn.Module。其特征如下所示:

  • 提供了一些基本功能,如参数管理、子模块追踪等。
  • 允许定义网络层的前向传播逻辑。
  • 能够自动追踪网络的参数,使得优化器可以更新这些参数。

  举个例子,如下所示:

import torch.nn as nn

class SimpleModel(nn.Module):
    def __init__(self):
        super(SimpleModel, self).__init__()
        self.fc = nn.Linear(in_features=10, out_features=5)

    def forward(self, x):
        return self.fc(x)

三.nn.ModuleList 模块

  nn.ModuleList 是用于将多个子模块组合成列表形式的容器。它允许在模型中方便地管理多个子模块,例如堆叠多个层。其特征如下所示:

  • 可以通过索引访问和操作列表中的每个子模块。
  • 允许在 forward 方法中方便地迭代或使用列表中的模块。

  举个例子,如下所示:

import torch.nn as nn

class ComplexModel(nn.Module):
    def __init__(self):
        super(ComplexModel, self).__init__()
        self.layers = nn.ModuleList([
            nn.Linear(in_features=10, out_features=5),
            nn.ReLU(),
            nn.Linear(in_features=5, out_features=1)
        ])

    def forward(self, x):
        for layer in self.layers:
            x = layer(x)
        return x

  总之,在 PyTorch 中,nn.Modulenn.ModuleList 是用于构建神经网络的两个关键组件。nn.Module 提供了一个通用的神经网络模块的基类,而 nn.ModuleList 是用于管理多个子模块的容器。通常,nn.Module 的派生类会包含 nn.ModuleList 作为其属性,以构建更复杂的网络结构。

相关推荐

  1. Pytorchresizereshape

    2024-01-18 16:08:04       30 阅读
  2. PyTorch Dataset、DataLoader enumerate()

    2024-01-18 16:08:04       40 阅读
  3. PyTorchAOTAutograd、PrimTorchTorchInductor

    2024-01-18 16:08:04       28 阅读
  4. pytorchdatasetdataloader

    2024-01-18 16:08:04       19 阅读
  5. PyTorch模块、类函数命名调用

    2024-01-18 16:08:04       33 阅读
  6. pytorchzero_grad()函数含义使用

    2024-01-18 16:08:04       9 阅读
  7. pytorchtorch.squeezetorch.unsqueeze

    2024-01-18 16:08:04       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-18 16:08:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-18 16:08:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-18 16:08:04       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-18 16:08:04       20 阅读

热门阅读

  1. PyTorch中的AOTAutograd、PrimTorch和TorchInductor

    2024-01-18 16:08:04       28 阅读
  2. 虚拟化技术、Docker、K8s笔记总结

    2024-01-18 16:08:04       31 阅读
  3. uni-app根据腾讯地图接口三级联动组件

    2024-01-18 16:08:04       35 阅读
  4. 【封装一个日志库(linux)】【转载】

    2024-01-18 16:08:04       31 阅读
  5. 4bit/8bit 启动 Mixtral 8*7B 大语言模型

    2024-01-18 16:08:04       37 阅读
  6. Pytorch

    Pytorch

    2024-01-18 16:08:04      30 阅读
  7. docker部署wiki.js

    2024-01-18 16:08:04       38 阅读
  8. tcpdump 用法

    2024-01-18 16:08:04       32 阅读
  9. C和指针课后答案

    2024-01-18 16:08:04       37 阅读