PyTorch中常用的激活函数的方法示例

yizhihongxing

PyTorch是一个流行的深度学习框架,它提供了许多常用的激活函数,包括ReLU、Sigmoid和Tanh等。在本文中,我们将详细讲解PyTorch中常用的激活函数,并提供两个示例说明。

PyTorch中常用的激活函数

ReLU激活函数

ReLU(Rectified Linear Unit)是一种常用的激活函数,它将所有负数输入值都变为零,而将所有正数输入值保持不变。以下是一个示例,展示如何在PyTorch中使用ReLU激活函数:

import torch
import torch.nn as nn

# Define ReLU activation function
relu = nn.ReLU()

# Define input tensor
x = torch.randn(1, 10)

# Apply ReLU activation function to input tensor
y = relu(x)

# Print output tensor
print(y)

在这个示例中,我们首先定义了一个ReLU激活函数relu。接下来,我们定义了一个输入张量x,它的形状为(1, 10)。然后,我们将输入张量x应用于ReLU激活函数,得到输出张量y。最后,我们打印输出张量y的值。

Sigmoid激活函数

Sigmoid激活函数将输入值压缩到0和1之间,通常用于二元分类问题。以下是一个示例,展示如何在PyTorch中使用Sigmoid激活函数:

import torch
import torch.nn as nn

# Define Sigmoid activation function
sigmoid = nn.Sigmoid()

# Define input tensor
x = torch.randn(1, 10)

# Apply Sigmoid activation function to input tensor
y = sigmoid(x)

# Print output tensor
print(y)

在这个示例中,我们首先定义了一个Sigmoid激活函数sigmoid。接下来,我们定义了一个输入张量x,它的形状为(1, 10)。然后,我们将输入张量x应用于Sigmoid激活函数,得到输出张量y。最后,我们打印输出张量y的值。

Tanh激活函数

Tanh激活函数将输入值压缩到-1和1之间,通常用于回归问题。以下是一个示例,展示如何在PyTorch中使用Tanh激活函数:

import torch
import torch.nn as nn

# Define Tanh activation function
tanh = nn.Tanh()

# Define input tensor
x = torch.randn(1, 10)

# Apply Tanh activation function to input tensor
y = tanh(x)

# Print output tensor
print(y)

在这个示例中,我们首先定义了一个Tanh激活函数tanh。接下来,我们定义了一个输入张量x,它的形状为(1, 10)。然后,我们将输入张量x应用于Tanh激活函数,得到输出张量y。最后,我们打印输出张量y的值。

示例说明

以下是两个示例,展示如何在PyTorch中使用激活函数:

示例一:使用ReLU激活函数训练一个简单的神经网络

import torch
import torch.nn as nn
import torch.optim as optim

# Define neural network
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(10, 5)
        self.fc2 = nn.Linear(5, 1)
        self.relu = nn.ReLU()

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

# Create instance of neural network
net = Net()

# Define loss function and optimizer
criterion = nn.MSELoss()
optimizer = optim.SGD(net.parameters(), lr=0.01)

# Define input and target tensors
input = torch.randn(1, 10)
target = torch.randn(1, 1)

# Train neural network
for i in range(100):
    optimizer.zero_grad()
    output = net(input)
    loss = criterion(output, target)
    loss.backward()
    optimizer.step()

# Print output tensor
print(output)

在这个示例中,我们首先定义了一个简单的神经网络Net,包含两个线性层和一个ReLU激活函数。然后,我们创建了一个Net的实例net。接下来,我们定义了损失函数和优化器。然后,我们定义了一个输入张量input和一个目标张量target。最后,我们使用训练循环训练神网络,并打印输出张量output的值。

示例二:使用Tanh激活函数加载和预测一个预训练的图像分类模型

import torch
import torchvision.models as models
import torchvision.transforms as transforms
from PIL import Image

# Load pre-trained ResNet18 model
model = models.resnet18(pretrained=True)

# Define image transformation
transform = transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

# Load and transform image
image = Image.open('image.jpg')
image = transform(image)

# Add batch dimension to image
image = image.unsqueeze(0)

# Apply model to image
output = model(image)

# Apply Tanh activation function to output tensor
tanh = nn.Tanh()
output = tanh(output)

# Print predicted class
_, predicted = torch.max(output.data, 1)
print(predicted)

在这个示例中,我们首先使用models.resnet18函数加载预训练的ResNet18模型。接下来,我们定义了一个图像变换transform,它将图像缩放到256x256像素,居中裁剪到224x224像素,图像转换为张量,并进行归一化。然后,我们加载并转换图像image。接下来,我们将图像image添加一个批次维度,并将其应用于模型,得到输出张量output。然后,我们将输出张量output应用于Tanh激活函数,得到输出张量output。最后,我们打印预测的类别predicted

总结

在本文中,我们详细讲解了PyTorch中常用的激活函数,并提供了两个示例说明。使用激活函数可以增强神经网络的表达能力,而示例说明可以帮助我们更好地理解如何在PyTorch中使用激活函数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyTorch中常用的激活函数的方法示例 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • AFM模型 pytorch示例代码

    1.AFM模型pytorch实现。 $hat{y}_{AFM}=w_{0} + sum_{i=1}^{n}w_{i}x_{i}+p^{T}sum_{i=1}^{n-1}sum_{j=i+1}^{n}a_{ij}(v_{i}v_{j})x_{i}x_{j}$ $a_{ij}^{‘}=h^{T}Relu(W(v_{i}v_{j})x_{i}x_{j}+b)$ $…

    2023年4月7日
    00
  • pytorch1.0中torch.nn.Conv2d用法详解

    torch.nn.Conv2d是PyTorch中用于实现二维卷积操作的类。在本文中,我们将详细介绍torch.nn.Conv2d的用法,并提供两个示例。 1. torch.nn.Conv2d的参数 torch.nn.Conv2d的参数如下: torch.nn.Conv2d(in_channels, out_channels, kernel_size, str…

    PyTorch 2023年5月16日
    00
  • pytorch点乘与叉乘示例讲解

    PyTorch点乘与叉乘示例讲解 在PyTorch中,点乘和叉乘是两种常用的向量运算。在本文中,我们将介绍PyTorch中的点乘和叉乘,并提供两个示例说明。 示例1:使用点乘计算两个向量的相似度 以下是一个使用点乘计算两个向量相似度的示例代码: import torch # Define two vectors a = torch.tensor([1, 2,…

    PyTorch 2023年5月16日
    00
  • pytorch框架的详细介绍与应用详解

    下面是关于“PyTorch框架的详细介绍与应用详解”的完整攻略。 PyTorch简介 PyTorch是一个基于Python的科学计算库,它提供了两个高级功能:张量计算和深度学习。PyTorch的张量计算功能类似于NumPy,但可以在GPU上运行,这使得它非常适合于深度学习。PyTorch的深度学习功能包括自动求导、动态计算图和模型部署等功能。PyTorch的…

    PyTorch 2023年5月15日
    00
  • pytorch逐元素比较tensor大小实例

    PyTorch逐元素比较Tensor大小实例 在深度学习中,我们经常需要比较两个Tensor的大小。在PyTorch中,我们可以使用逐元素比较函数来比较两个Tensor的大小。在本文中,我们将介绍如何使用逐元素比较函数来比较两个Tensor的大小,并提供两个示例,分别是比较两个Tensor的大小和比较两个Tensor的大小并返回较大的那个Tensor。 比较…

    PyTorch 2023年5月15日
    00
  • pytorch 多gpu训练

    pytorch 多gpu训练 用nn.DataParallel重新包装一下 数据并行有三种情况 前向过程 device_ids=[0, 1, 2] model = model.cuda(device_ids[0]) model = nn.DataParallel(model, device_ids=device_ids) 只要将model重新包装一下就可以。…

    PyTorch 2023年4月6日
    00
  • pytorch网络的创建和与训练模型的加载

      本文是PyTorch使用过程中的的一些总结,有以下内容: 构建网络模型的方法 网络层的遍历 各层参数的遍历 模型的保存与加载 从预训练模型为网络参数赋值 主要涉及到以下函数的使用 add_module,ModulesList,Sequential 模型创建 modules(),named_modules(),children(),named_childr…

    PyTorch 2023年4月6日
    00
  • PyTorch grad_fn的作用以及RepeatBackward, SliceBackward示例

    变量.grad_fn表明该变量是怎么来的,用于指导反向传播。例如loss = a+b,则loss.gard_fn为<AddBackward0 at 0x7f2c90393748>,表明loss是由相加得来的,这个grad_fn可指导怎么求a和b的导数。 程序示例: import torch w1 = torch.tensor(2.0, requi…

    2023年4月7日
    00
合作推广
合作推广
分享本页
返回顶部