pytorch中nn.ReLU()和F.relu()有什么区别?

简介: pytorch中nn.ReLU()和F.relu()有什么区别?

对于一些常见模块或者算子,在pytorch的nn模块和nn.functional中都有实现,例如nn.ReLU()和F.relu(),nn.Conv2d和F.conv2d()等。

对于这二者都可以实现指定目的,但是二者有什么区别呢?

对于nn中实现的,它继承了nn.Module类,它是一个类,如果要使用需要先实例化创建一个对象才可以调用,而nn.functional中实现的它是一个函数,可以直接当作函数进行调用。

a = torch.randn(3, 4)
print(a)
relu = nn.ReLU()
print(relu(a))
print(F.relu(a))
tensor([[-0.4196,  0.6217, -1.2835,  2.2796],
        [-1.2185,  0.5819, -1.0084, -1.0939],
        [-1.3235, -0.6229,  0.2442, -1.0914]])
tensor([[0.0000, 0.6217, 0.0000, 2.2796],
        [0.0000, 0.5819, 0.0000, 0.0000],
        [0.0000, 0.0000, 0.2442, 0.0000]])
tensor([[0.0000, 0.6217, 0.0000, 2.2796],
        [0.0000, 0.5819, 0.0000, 0.0000],
        [0.0000, 0.0000, 0.2442, 0.0000]])

对于定义模型类时,一般我们把带有学习参数的层放在构造函数中,而将不带有学习参数的层放在forward中进行实现,例如:

class Net(nn.Module):
    def __init__(self):
        super().__init__
        self.conv = nn.Conv2d(1, 6, 5)
        self.fc = nn.Linear(10, 2)
    def forward(self, x):
        x = self.conv(x)
        x = F.max_pool2d(x)
        x = self.fc(x)
        x = F.dropout(x)
        x = F.sigmoid(x)
        return x


目录
相关文章
|
7月前
|
机器学习/深度学习 PyTorch TensorFlow
|
4月前
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch 中的动态图与静态图:理解它们的区别及其应用场景
【8月更文第29天】深度学习框架中的计算图是构建和训练神经网络的基础。PyTorch 支持两种类型的计算图:动态图和静态图。本文旨在阐述这两种计算图的区别、各自的优缺点以及它们在不同场景下的应用。
817 0
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习框架:Pytorch与Keras的区别与使用方法
深度学习框架:Pytorch与Keras的区别与使用方法
|
4月前
|
机器学习/深度学习 存储 PyTorch
【深度学习】Pytorch面试题:什么是 PyTorch?PyTorch 的基本要素是什么?Conv1d、Conv2d 和 Conv3d 有什么区别?
关于PyTorch面试题的总结,包括PyTorch的定义、基本要素、张量概念、抽象级别、张量与矩阵的区别、不同损失函数的作用以及Conv1d、Conv2d和Conv3d的区别和反向传播的解释。
263 2
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】16. Pytorch中神经网络模型的构造方法:Module、Sequential、ModuleList、ModuleDict的区别
【从零开始学习深度学习】16. Pytorch中神经网络模型的构造方法:Module、Sequential、ModuleList、ModuleDict的区别
|
7月前
|
机器学习/深度学习 PyTorch TensorFlow
Pytorch 与 Tensorflow:深度学习的主要区别(1)
Pytorch 与 Tensorflow:深度学习的主要区别(1)
209 2
|
7月前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习:Pytorch 与 Tensorflow 的主要区别(2)
深度学习:Pytorch 与 Tensorflow 的主要区别(2)
101 0
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch torch.nn库以及nn与nn.functional有什么区别?
Pytorch torch.nn库以及nn与nn.functional有什么区别?
107 0
|
PyTorch 算法框架/工具
【PyTorch】rand/randn/randint/randperm的区别
【PyTorch】rand/randn/randint/randperm的区别
103 0
|
机器学习/深度学习 PyTorch 算法框架/工具
【PyTorch】nn.ReLU()与F.relu()的区别
【PyTorch】nn.ReLU()与F.relu()的区别
156 0