一、安装PyTorch
环境配置 - 建议使用[conda](https://docs.conda.io/)创建新环境:
```bash
conda create -n pytorch_env python=3.8
conda activate pytorch_env
```
- 根据显卡类型选择对应版本(NVIDIA/CUDA或AMD):
- NVIDIA用户:
```bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
```
- AMD用户:
```bash
pip install torch torchvision torchaudio
```
- 安装后验证GPU可用性:
```python
import torch
print(torch.cuda.is_available())
```
二、张量操作(核心数据结构)
创建张量
```python
import torch
scalar = torch.tensor(5)
vector = torch.tensor([1, 2, 3])
matrix = torch.tensor([[1, 2], [3, 4]])
print("标量:", scalar)
print("向量:", vector)
print("矩阵:\n", matrix)
```
张量类型与运算
- 支持`float32`、`int64`等类型,可通过`dtype`参数指定。
- 基本运算(如加法)支持直接运算符:
```python
matrix + 10
```
动态计算图与自动求导
- 默认使用动态计算图,修改张量结构会自动更新计算图。
- 设置`requires_grad=True`自动记录梯度:
```python
x = torch.tensor(2.0, requires_grad=True)
y = x 2 + 3*x + 1 y.backward() print(x.grad) 输出梯度 ``` 三、神经网络构建 定义网络结构
继承`nn.Module`类,定义层与激活函数:
```python
import torch.nn as nn
class NeuralNetwork(nn.Module):
def __init__(self):
super().__init__()
self.layer1 = nn.Linear(784, 128)
self.layer2 = nn.Linear(128, 64)
self.layer3 = nn.Linear(64, 10)
def forward(self, x):
x = torch.relu(self.layer1(x))
x = torch.relu(self.layer2(x))
x = self.layer3(x)
return x
```
训练模型
- 定义损失函数与优化器:
```python
import torch.optim as optim
loss_func = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
```
- 加载数据(如MNIST)并迭代训练:
```python
from torchvision import datasets, transforms
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))
])
train_dataset = datasets.MNIST(root='./data', train=True, download=True)
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64)
```
四、注意事项
版本匹配:
确保PyTorch与CUDA版本兼容,安装后通过`torch.cuda.version()`验证。
性能优化:
使用GPU加速时,将张量移动到设备(CPU/GPU):
```python
x = x.cuda() 若x在GPU上
```
调试技巧:
动态计算图便于实时修改模型结构,调试更灵活。
通过以上步骤,你可以快速上手PyTorch进行深度学习开发。建议结合官方文档和示例项目进行实践,逐步深入理解其功能与特性。