在 Linux 上迁移 PyTorch 环境,通常分为代码 + 模型 + 环境依赖三部分。下面按常见场景给你一套清晰做法。
先确认你是哪一种:
大部分情况都属于 2 或 4。
conda env export > environment.yml
pip freeze > requirements.txt
rsync -avz project/ user@new_server:/path/to/project/
conda env create -f environment.yml
conda activate your_env
pip install -r requirements.txt
⚠️ 注意:
environment.yml 可能包含 CUDA 相关包不要直接拷贝 PyTorch 包,容易出 ABI 问题。
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
或 CPU 版:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
.pt / .pth 权重scp model.pth user@new_server:/path/
加载时:
model.load_state_dict(torch.load("model.pth", map_location="cpu"))
跨设备建议:
torch.load("model.pth", map_location="cuda:0")
docker commit pytorch_container pytorch_image
docker save pytorch_image > pytorch.tar
docker load < pytorch.tar
docker run -it --gpus all pytorch_image
或直接使用官方镜像:
docker run -it --gpus all pytorch/pytorch:2.1.0-cuda11.8-cudnn8-devel
nvidia-smi
nvcc --version
确保:
libcudart.so not found→ CUDA 没装或版本不对
Illegal instruction→ CPU 架构不同(如 AMD → ARM)
→ 用 map_location="cpu" 先加载
如果你愿意,可以告诉我:
我可以直接给你一条可复制的执行命令清单。