PyTorch快速入门
时间: 2023-10-15 16:02:17 浏览: 97
Pytorch快速入门
PyTorch 是一个基于 Python 的科学计算库,它是一个用于深度学习的框架,具有高度的灵活性和可扩展性。
以下是一个快速入门 PyTorch 的步骤:
1. 安装 PyTorch
你可以通过官方网站 https://pytorch.org/ 下载和安装 PyTorch。
2. 导入 PyTorch
在 Python 中,导入 PyTorch 的方式是:
```python
import torch
```
3. 创建 Tensor
Tensor 是 PyTorch 中的核心数据结构,它类似于 NumPy 的数组,但支持 GPU 加速和自动求导。
你可以使用以下代码创建一个 2x3 的浮点型张量:
```python
import torch
x = torch.Tensor([[1, 2, 3], [4, 5, 6]])
print(x)
```
输出结果为:
```
tensor([[1., 2., 3.],
[4., 5., 6.]])
```
4. 自动求导
PyTorch 中最重要的功能之一是自动求导。你可以在 Tensor 上设置 `requires_grad=True`,然后对它进行操作,PyTorch 会自动记录操作并计算梯度。
以下是一个简单的示例:
```python
import torch
x = torch.randn(3, 3, requires_grad=True)
y = x * 2
z = y.mean()
z.backward()
print(x.grad)
```
输出结果为:
```
tensor([[0.6667, 0.6667, 0.6667],
[0.6667, 0.6667, 0.6667],
[0.6667, 0.6667, 0.6667]])
```
5. 定义模型
在 PyTorch 中,你可以通过继承 `nn.Module` 类来定义模型。你需要实现 `__init__` 和 `forward` 方法。
以下是一个简单的线性模型的示例:
```python
import torch.nn as nn
class LinearModel(nn.Module):
def __init__(self, input_dim, output_dim):
super(LinearModel, self).__init__()
self.linear = nn.Linear(input_dim, output_dim)
def forward(self, x):
out = self.linear(x)
return out
```
6. 训练模型
在 PyTorch 中,你可以使用自定义的训练循环或使用 PyTorch 提供的训练工具来训练模型。
以下是一个简单的训练循环的示例:
```python
import torch
import torch.nn as nn
import torch.optim as optim
# 定义模型
class LinearModel(nn.Module):
def __init__(self, input_dim, output_dim):
super(LinearModel, self).__init__()
self.linear = nn.Linear(input_dim, output_dim)
def forward(self, x):
out = self.linear(x)
return out
# 准备数据
x_train = torch.randn(100, 10)
y_train = torch.randn(100, 1)
# 定义模型、损失函数和优化器
model = LinearModel(10, 1)
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 训练模型
for epoch in range(100):
# 前向传播
y_pred = model(x_train)
# 计算损失函数
loss = criterion(y_pred, y_train)
# 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 输出损失函数值
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, 100, loss.item()))
```
这个训练循环会对一个具有 10 个输入和 1 个输出的线性模型进行训练,使用均方误差损失函数和随机梯度下降优化器。
阅读全文