Pytorch教程(二)

PyTorch是一个广泛使用的Python深度学习框架。它旨在提供灵活性和速度,以构建各种深度学习模型。在本教程中,我们将探讨PyTorch的基础功能以及如何使用它们来构建神经网络。

  1. 张量(Tensors)

在PyTorch中,张量是基本数据结构。它们类似于NumPy的多维数组,但能够与GPU加速运算。

创建一个张量

import torch

# 0维张量
x = torch.tensor(42)

# 1维张量
y = torch.tensor([1, 2, 3, 4, 5])

# 2维张量
z = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

张量的形状、大小、数据类型和存储设备均可使用。

  1. 自动梯度计算(Automatic Differentiation)

自动梯度计算是PyTorch的特有功能。它允许用户构建计算图并自动计算梯度,这对于训练深度学习模型非常有用。

在PyTorch中,可以通过设置requires_grad参数来跟踪张量的梯度。计算张量的梯度需要使用backward()方法。

import torch

x = torch.tensor(3.0, requires_grad=True)
y = x ** 2
z = 2 * y + 1

z.backward()    # 计算梯度

print(x.grad)   # 输出梯度值:6
  1. 神经网络模块(Neural Network Modules)

PyTorch提供了一个nn模块,其中包含构建神经网络所需的各种模块。

下面是一个使用nn模块构建两层神经网络的示例:

import torch.nn as nn

class Net(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(Net, self).__init__()
        self.layer1 = nn.Linear(input_size, hidden_size)
        self.layer2 = nn.Linear(hidden_size, output_size)

    def forward(self, x):
        x = self.layer1(x)
        x = nn.ReLU(x)
        x = self.layer2(x)
        return x

在这里,我们使用nn.Linear创建两个线性层,并使用ReLU激活函数作为中间层的激活函数。

  1. 优化器(Optimizers)

PyTorch还提供了用于优化神经网络的优化器。

下面是使用optim.SGD优化器训练神经网络的示例:

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

# 训练集
x_train = torch.tensor([[1.0], [2.0], [3.0], [4.0]])
y_train = torch.tensor([[2.0], [4.0], [6.0], [8.0]])

# 模型
model = nn.Linear(1, 1)

# 优化器
optimizer = optim.SGD(model.parameters(), lr=0.01)

# 损失函数
criterion = nn.MSELoss()

# 训练
for epoch in range(100):
    # 预测
    y_pred = model(x_train)

    # 计算损失
    loss = criterion(y_pred, y_train)

    # 清空历史梯度
    optimizer.zero_grad()

    # 反向传播
    loss.backward()

    # 更新权重
    optimizer.step()

    if epoch % 10 == 0:
        print('epoch:{} Loss:{}'.format(epoch, loss.item()))

在上面的示例中,我们使用随机梯度下降(SGD)优化器,通过计算模型的损失函数和反向传播更新模型的权重。

至此,我们简单介绍了PyTorch的几个基础功能。希望这篇教程对你有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dumpling90

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值