张量和视觉、音频的基本使用

安装 PyTorch 及相关库

PyTorch 可通过官方推荐方式安装。根据 CUDA 版本和系统环境选择对应命令:

pip install torch torchvision torchaudio

如需特定版本(如 CUDA 11.8),可指定:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118


基础张量操作

PyTorch 的核心是张量(Tensor),支持 GPU 加速计算:

import torch

# 创建张量
x = torch.tensor([1, 2, 3])
y = torch.rand(3, 3)  # 3x3 随机矩阵

# GPU 转移(需设备支持)
if torch.cuda.is_available():
    y = y.to('cuda')

# 自动微分
z = y.sum()
z.backward()  # 计算梯度


使用 TorchVision 处理图像数据

TorchVision 提供数据集、模型和图像变换工具:

from torchvision import datasets, transforms

# 数据预处理
transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.5,), (0.5,))
])

# 加载 MNIST 数据集
train_data = datasets.MNIST(root='./data', train=True, transform=transform, download=True)


构建神经网络模型

结合 torch.nn 模块定义模型:

import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc = nn.Linear(784, 10)  # MNIST 输入为 28x28=784

    def forward(self, x):
        return self.fc(x.view(x.shape[0], -1))

model = Net()
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)


使用 TorchAudio 处理音频

TorchAudio 支持音频加载、特征提取:

import torchaudio

# 加载音频文件
waveform, sample_rate = torchaudio.load('audio.wav')

# 提取梅尔频谱
transform = torchaudio.transforms.MelSpectrogram(sample_rate)
mel_spec = transform(waveform)


训练循环示例

完整训练流程整合:

for epoch in range(10):
    for data, target in train_loader:
        optimizer.zero_grad()
        output = model(data)
        loss = criterion(output, target)
        loss.backward()
        optimizer.step()
    print(f'Epoch {epoch}, Loss: {loss.item():.4f}')


模型保存与加载

持久化训练结果:

# 保存
torch.save(model.state_dict(), 'model.pth')

# 加载
model.load_state_dict(torch.load('model.pth'))
model.eval()  # 切换为推理模式

关键点:

  • 张量操作支持广播机制和 GPU 加速
  • TorchVision 提供预训练模型(如 ResNet)
  • TorchAudio 支持多种音频后端(如 SoundFile)
  • 混合精度训练可通过 torch.cuda.amp 实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值