温馨提示×

linux pytorch如何迁移

小樊
49
2026-10-16 04:26:29
栏目: 智能运维

在 Linux 上迁移 PyTorch 环境,通常分为代码 + 模型 + 环境依赖三部分。下面按常见场景给你一套清晰做法。


一、明确迁移类型

先确认你是哪一种:

  1. 同机换目录 / 用户
  2. 机器 A → 机器 B(Linux → Linux)
  3. CPU → GPU 或 GPU → 不同显卡
  4. Docker / 容器迁移
  5. 云服务器之间迁移

大部分情况都属于 2 或 4。


二、最推荐的迁移方式(环境可复现)

✅ 方式 1:使用 conda + requirements(最稳)

1️⃣ 在原机器导出环境

conda env export > environment.yml
pip freeze > requirements.txt

2️⃣ 拷贝项目

rsync -avz project/ user@new_server:/path/to/project/

3️⃣ 新机器创建环境

conda env create -f environment.yml
conda activate your_env
pip install -r requirements.txt

⚠️ 注意:

  • environment.yml 可能包含 CUDA 相关包
  • 若 GPU 不同,建议重新装 PyTorch

三、PyTorch 本身的迁移(重点)

✅ 方式 2:重新安装 PyTorch(官方推荐)

不要直接拷贝 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

四、模型权重迁移

✅ 方式 3:只迁移 .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 方式迁移(最干净)

✅ 方式 4:使用 Docker(强烈推荐服务器)

原机器

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

六、GPU 驱动 & CUDA 注意事项

必查项

nvidia-smi
nvcc --version

确保:

  • 驱动版本 ≥ CUDA 要求
  • PyTorch CUDA 版本匹配

七、常见问题

❌ 报错:libcudart.so not found

→ CUDA 没装或版本不对

❌ 报错:Illegal instruction

→ CPU 架构不同(如 AMD → ARM)

❌ 模型加载失败

→ 用 map_location="cpu" 先加载


八、我可以直接帮你

如果你愿意,可以告诉我:

  1. 原机器 & 新机器系统(Ubuntu?CentOS?)
  2. 是否用 GPU
  3. 用 conda / pip / docker 哪种
  4. 是否是训练环境 or 推理环境

我可以直接给你一条可复制的执行命令清单。

0 踩