Linux与PyTorch可以高效协同工作,以下是一些关键步骤和建议:
安装Python和pip:
virtualenv
或conda
。conda
安装PyTorch的示例命令:conda create -n pytorch_env python=3.8
conda activate pytorch_env
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
安装CUDA和cuDNN:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pinsudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-ubuntu2204-12-1-local_12.1.0-530.30.02-1_amd64.debsudo dpkg -i cuda-repo-ubuntu2204-12-1-local_12.1.0-530.30.02-1_amd64.debsudo cp /var/cuda-repo-ubuntu2204-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get updatesudo apt-get -y install cuda
验证安装:
import torch
print(torch.__version__)
print(torch.cuda.is_available())
使用GPU加速:
.to(device)
方法,其中device可以是torch.device('cuda')
。device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = model.to(device)
混合精度训练:
from torch.cuda.amp import GradScaler, autocast
scaler = GradScaler()
for data, label in dataloader:
data, label = data.to(device), label.to(device)
with autocast():
output = model(data)
loss = criterion(output, label)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
优化数据加载:
torch.utils.data.DataLoader
来异步加载数据,设置合适的num_workers
参数以利用多核CPU。dataloader = torch.utils.data.DataLoader(dataset, batch_size=64, num_workers=4)
模型优化:
torch.jit.script
或torch.jit.trace
来JIT编译模型,提高执行效率。系统优化:
nvidia-smi
工具监控GPU的使用情况,确保没有资源浪费。通过以上步骤和建议,你可以在Linux系统上高效地使用PyTorch进行深度学习任务。