在CentOS系统中备份PyTorch环境,需兼顾系统环境一致性、依赖完整性及模型数据安全性,以下是分步策略及操作方法:
cat /etc/centos-release
)、Python版本(python -V
)、PyTorch版本(python -c "import torch; print(torch.__version__)"
)及CUDA/cuDNN版本(nvcc --version
、cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
),避免恢复时版本冲突。/tmp
下的PyTorch缓存),减少备份体积。若PyTorch通过conda
或venv
创建虚拟环境,导出环境配置是最安全的方式:
pip freeze
生成requirements.txt
,包含PyTorch及其所有依赖的版本信息。# 激活虚拟环境(若未激活)
conda activate pytorch_env # 或 source /path/to/venv/bin/activate
# 导出依赖到文件
pip freeze > pytorch_requirements.txt
tar
命令打包虚拟环境目录(如conda
环境的~/anaconda3/envs/pytorch_env
或venv
的./venv
),保留环境结构。# 替换为实际环境路径
tar -czvf pytorch_env_backup_$(date +%F).tar.gz /path/to/pytorch_env
注:
conda
环境可通过conda env export > pytorch_env.yml
导出更完整的配置(包含通道、依赖关系),便于跨平台恢复。
state_dict
),体积小且灵活,需确保恢复时模型结构一致。import torch
from model import SimpleModel # 替换为实际模型类
model = SimpleModel()
# 假设模型已完成训练
torch.save(model.state_dict(), '/backup/pytorch_model.pth')
torch.save(model, '/backup/pytorch_full_model.pth')
/data/train
)复制到备份目录,可使用rsync
增量同步,节省时间。rsync -avz /data/train /backup/train_data/
通过crontab
设置定时任务,自动完成环境与模型备份:
/home/user/pytorch_backup.sh
):#!/bin/bash
# 备份虚拟环境
tar -czvf /backup/pytorch_env_$(date +%F).tar.gz /path/to/pytorch_env
# 备份模型
cp /path/to/pytorch_model.pth /backup/pytorch_model_$(date +%F).pth
# 删除7天前的旧备份(保留最近7天)
find /backup -name "pytorch_*" -type f -mtime +7 -delete
crontab
(crontab -e
),添加以下内容(每天凌晨2点执行):0 2 * * * /bin/bash /home/user/pytorch_backup.sh
bin
(Linux)、Lib
(Python库)等目录。model = SimpleModel()
model.load_state_dict(torch.load('/backup/pytorch_model.pth'))
model.eval()
print("模型加载成功!")
pip install -r pytorch_requirements.txt
安装依赖。source /etc/profile
)。通过以上步骤,可实现PyTorch CentOS环境的完整备份,覆盖环境配置、模型参数及训练数据,确保在系统故障或迁移时快速恢复。