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

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日

相关文章

  • python实现K折交叉验证

    在机器学习中,K折交叉验证是一种常用的评估模型性能的方法。在Python中,可以使用scikit-learn库实现K折交叉验证。本文将提供一个完整的攻略,以帮助您实现K折交叉验证。 步骤1:导入要的库 要实现K折交叉验证,您需要导入scikit-learn库。您可以使用以下代码导入这个库: from sklearn.model_selection impor…

    PyTorch 2023年5月15日
    00
  • pytorch转onnx问题

     Fail to export the model in PyTorch https://github.com/onnx/tutorials/blob/master/tutorials/PytorchAddExportSupport.md#fail-to-export-the-model-in-pytorch 1. RuntimeError: ONNX ex…

    2023年4月8日
    00
  • Pytorch训练模型得到输出后计算F1-Score 和AUC的操作

    以下是“PyTorch训练模型得到输出后计算F1-Score和AUC的操作”的完整攻略,包含两个示例说明。 示例1:计算F1-Score 步骤1:准备数据 首先,我们需要准备一些数据来计算F1-Score。假设我们有一个二分类问题,我们有一些真实标签和一些预测标签。我们可以使用sklearn库中的precision_recall_fscore_support…

    PyTorch 2023年5月15日
    00
  • 【PyTorch】训练一个最简单的CNN

    导入相关包torch.nn.functional中包含relu(),maxpool2d()等 CNN 常用操作。 import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim import torchvision import to…

    PyTorch 2023年4月8日
    00
  • PyTorch实例:房价预测

    import torch from torch.autograd import Variable # 构造0-100之间的均匀数字作为时间变量x x = Variable(torch.linspace(0,100).type(torch.FloatTensor)) # 时间点上的历史房价数据 rand = Variable(torch.randn(100))…

    PyTorch 2023年4月7日
    00
  • pytorch模型预测结果与ndarray互转方式

    PyTorch是一个流行的深度学习框架,它提供了许多工具和函数来构建、训练和测试神经网络模型。在实际应用中,我们通常需要将PyTorch模型的预测结果转换为NumPy数组或将NumPy数组转换为PyTorch张量。在本文中,我们将介绍如何使用PyTorch和NumPy进行模型预测结果和数组之间的转换。 示例1:PyTorch模型预测结果转换为NumPy数组 …

    PyTorch 2023年5月15日
    00
  • 关于使用Pytorch遇到的OMP: Error #15: Initializing libomp.dylib, but found libiomp5.dylib already initialize异常的解决方案

    使用Pytorch的时候,原本程序可以正常运行,但是突然有一天再次跑程序的时候遇到了如下这个错误:   OMP: Error #15: Initializing libomp.dylib, but found libiomp5.dylib already initialize 这就有点慌了,然后面向百度编程,搜索相关的解决方案,最开始大多数的文档都是根据报错…

    2023年4月7日
    00
  • PyTorch自定义数据集

    数据传递机制 我们首先回顾识别手写数字的程序: … Dataset = torchvision.datasets.MNIST(root=’./mnist/’, train=True, transform=transform, download=True,) dataloader = torch.utils.data.DataLoader(dataset=…

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