Pytorch 教学案例
时间: 2025-05-14 18:57:58 浏览: 14
### PyTorch 教学案例与示例代码
以下是基于提供的引用内容和专业知识整理的关于 PyTorch 的教学案例及其示例代码:
#### 数据加载与处理
PyTorch 提供了 `torch.utils.data.DataLoader` 和 `torch.utils.data.Dataset` 工具来简化数据加载的过程[^2]。这些工具可以帮助开发者高效地管理训练数据。
```python
from torch.utils.data import Dataset, DataLoader
class CustomDataset(Dataset):
def __init__(self, data, labels):
self.data = data
self.labels = labels
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
sample = {
'data': self.data[idx],
'label': self.labels[idx]
}
return sample
dataset = CustomDataset(data=[1, 2, 3], labels=['a', 'b', 'c'])
dataloader = DataLoader(dataset, batch_size=1, shuffle=True)
for batch in dataloader:
print(batch)
```
#### 安装环境配置
在 Windows 下可以使用 Conda 方式安装 PyTorch 及其依赖项,同时指定 CUDA 版本以支持 GPU 加速[^1]。
```bash
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
```
#### 基础模型定义与训练
以下是一个简单的线性回归模型实现[^3],展示了如何定义网络结构并完成基本的训练流程。
```python
import torch
import torch.nn as nn
import torch.optim as optim
# 定义模型
class LinearModel(nn.Module):
def __init__(self):
super(LinearModel, self).__init__()
self.linear = nn.Linear(1, 1) # 输入维度为1,输出维度为1
def forward(self, x):
return self.linear(x)
model = LinearModel()
# 损失函数与优化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 训练数据
inputs = torch.tensor([[1.0], [2.0], [3.0]])
targets = torch.tensor([[2.0], [4.0], [6.0]])
# 训练循环
for epoch in range(500):
model.train()
outputs = model(inputs)
loss = criterion(outputs, targets)
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f'Final weights: {list(model.parameters())}')
```
#### 设计理念对比
相较于 Keras,PyTorch 更加灵活,在动态计算图的支持上表现突出[^4]。这种灵活性使得 PyTorch 成为了研究型项目的首选框架之一。
---
阅读全文
相关推荐


















