深度学习项目训练环境入门必看:激活dl环境、cd工作目录、修改train.py关键步骤
你刚拿到一个深度学习镜像,双击启动后面对黑乎乎的终端界面,心里可能在想:接下来该敲什么?conda activate dl 是不是必须的?代码上传到哪才不会丢?train.py 里到底要改哪几行才能跑通自己的数据?别急——这篇就是写给刚上手、还没被报错信息吓退的你的实操指南。不讲原理,不堆参数,只说你现在最需要知道的那几步:怎么进对环境、怎么找到代码、怎么改关键配置、怎么让模型真正跑起来。
本镜像基于《深度学习项目改进与实战专栏》预装了完整的深度学习开发环境,集成了训练、推理及评估所需的所有依赖,开箱即用。上传我博客提供的训练代码即可,基础环境已经安装好了,要是缺什么库,可自行安装即可。
专栏地址:《深度学习项目改进与实战》,改进专栏目录和介绍
1. 镜像环境说明
这个镜像不是从零开始搭的“裸系统”,而是为真实训练任务打磨过的“工作台”。它省掉了你花半天配CUDA、调PyTorch版本、反复重装torchvision的痛苦。所有基础组件都已对齐,你只需要专注在数据和代码上。
- 核心框架:
pytorch == 1.13.0 - CUDA版本:
11.6 - Python版本:
3.10.0 - 主要依赖:
torchvision==0.14.0,torchaudio==0.13.0,cudatoolkit=11.6,numpy,opencv-python,pandas,matplotlib,tqdm,seaborn等
这些组合经过实测验证,能稳定支持图像分类、目标检测、轻量级模型剪枝等常见任务。不需要你查兼容表,也不用担心“pip install torch”装错版本导致后续全崩。
2. 快速上手
镜像启动后,你会看到一个带图形界面的Linux桌面(类似Ubuntu),桌面右上角有终端图标,双击打开即可。别急着敲命令——先确认两件事:环境是否激活、代码是否放对位置。这两步错了,后面所有操作都是白忙。
2.1 激活环境与切换工作目录
镜像默认进入的是系统基础环境(比如叫torch25),但你的训练代码依赖的是我们预设的dl环境。这就像进厨房做饭,得先打开正确的灶台开关,否则火再大也烧不热锅。
执行这行命令激活环境:
conda activate dl成功激活后,终端提示符前会多出(dl)字样,例如:(dl) root@ubuntu:~#
如果没有这个前缀,请重新执行一次,或检查是否拼写错误(注意是dl,不是dl_env或deep-learning)。
环境激活后,下一步是把代码放到合适的位置。强烈建议不要放在/root/根目录下——这里容易和其他临时文件混在一起,也难管理。我们统一使用/root/workspace/作为你的“项目工作区”。
用 Xftp 工具(Windows/Mac 都可下载免费版)连接镜像,将你本地的训练代码压缩包(如my_project.zip)拖入右侧窗口的/root/workspace/目录下。解压后,你会看到类似这样的结构:
/root/workspace/my_classification/ ├── train.py ├── val.py ├── dataset/ │ ├── train/ │ └── val/ └── utils/然后在终端中,用cd命令精准跳转到这个文件夹:
cd /root/workspace/my_classification敲完回车,再输入ls,如果能看到train.py、val.py和dataset文件夹,说明你已站在正确的位置。这一步看似简单,却是90%新手卡住的第一关——很多人把代码传到了/root/下,却在/root/里运行python train.py,结果报错“找不到 dataset”。
2.2 模型训练:三处必改,一行启动
train.py不是拿来就跑的“黑盒”,它是一份为你留好接口的模板。你需要动的其实就三处,改完就能训自己的数据。
第一处:数据路径
找到类似这样的代码段(通常在文件开头或main()函数内):
train_dir = "./dataset/train" val_dir = "./dataset/val"把./dataset/train改成你实际存放训练图片的绝对路径,例如:
train_dir = "/root/workspace/my_classification/dataset/train" val_dir = "/root/workspace/my_classification/dataset/val"注意:一定要用绝对路径,相对路径在不同终端位置下容易失效;路径末尾不要加斜杠(/dataset/train/是错的,/dataset/train才对)。
第二处:类别数量
搜索num_classes =,你会看到类似:
num_classes = 10把它改成你数据集的实际类别数。比如你分“苹果、香蕉、橙子”3类,就写num_classes = 3。这个值错了,模型最后一层输出维度就不对,训练直接报错。
第三处:保存路径
找save_dir =或os.makedirs("runs/train", exist_ok=True)这类语句,确保模型和日志保存到你方便访问的位置,例如:
save_dir = "/root/workspace/my_classification/runs/train"改完保存文件(Ctrl+S),回到终端,执行:
python train.py不出意外,你会看到训练日志逐轮刷屏:Epoch 1/100, loss: 2.145, acc: 0.32...
训练完成后,模型文件(如best_model.pth)和训练曲线图(results.png)都会出现在你指定的save_dir里。
小技巧:训练时别关终端!如果想最小化窗口,右键终端标题栏 → “最小化”。关掉等于中断训练。
2.3 模型验证:换文件,改路径,一行验证
验证不是重新写代码,而是复用训练逻辑,只换数据和权重。打开val.py,同样改两处:
- 把
model_path指向你刚训好的模型,例如:model_path = "/root/workspace/my_classification/runs/train/best_model.pth" - 把
val_dir指向验证集路径,和train.py里保持一致。
保存后,在同一目录下运行:
python val.py终端会输出准确率、混淆矩阵等指标,例如:Top-1 Acc: 92.4% | Top-5 Acc: 98.7%
这就是你模型的真实表现,不是训练日志里的“幻觉精度”。
2.4 模型剪枝:删通道,保精度,一行导出
剪枝是为了让模型更小、更快,适合部署到边缘设备。本镜像已集成torch.nn.utils.prune模块,无需额外安装。
打开prune.py(或你专栏提供的剪枝脚本),重点看这一行:
prune.l1_unstructured(model, name='weight', amount=0.3)amount=0.3表示裁掉30%的权重。新手建议从0.2开始试(保留更多精度),逐步提高到0.4。改完运行:
python prune.py脚本会自动加载你训好的模型,剪枝后保存为pruned_model.pth。你可以用val.py再验证一次精度,看看损失多少——往往只降1~2个点,但模型体积能小一半。
2.5 模型微调:换头,冻干,一行启动
微调(Fine-tuning)适合数据量少但想快速出效果的场景。比如你只有200张猫狗图,直接从头训ResNet太慢,不如用ImageNet预训练权重“接着练”。
打开finetune.py,找到模型加载部分:
model = models.resnet18(pretrained=True) # ← 这行表示用预训练权重再找到分类头替换部分:
model.fc = nn.Linear(model.fc.in_features, num_classes) # ← 这里改你的类别数确保num_classes和你数据一致。如果想加快收敛,可以冻结前面的层(只训最后几层):
for param in model.parameters(): param.requires_grad = False for param in model.fc.parameters(): param.requires_grad = True保存后运行:
python finetune.py你会发现,前几轮 loss 下降极快,10轮就能达到不错效果。
2.6 下载训练成果:Xftp 拖拽,双击查看进度
训练完的模型、日志、图表都在服务器上,怎么拿回来?用 Xftp 最简单:
- 左侧窗口:你的电脑本地文件夹(如
D:\my_models) - 右侧窗口:服务器路径(如
/root/workspace/my_classification/runs/train/) - 下载操作:在右侧找到
best_model.pth,鼠标双击,文件自动传到左侧对应文件夹 - 批量下载:选中整个
runs文件夹,按住左键拖到左侧文件夹内,松开即开始传输 - 查看进度:双击左侧正在传输的文件名,弹出窗口显示实时速度和剩余时间
提示:数据集通常很大,上传前建议用
zip或tar -zcf压缩;下载模型时不用压缩,.pth文件本身已是二进制压缩格式。
3. 常见问题直答
很多问题其实就差一个动作。这里列出高频卡点,对号入座,立刻解决。
Q:执行
conda activate dl报错 “Command not found”?
A:说明 conda 没初始化。先运行source /opt/conda/etc/profile.d/conda.sh,再执行conda activate dl。Q:
python train.py报错 “No module named 'torch'”?
A:一定是没激活dl环境。检查提示符前是否有(dl),没有就补执行conda activate dl。Q:数据集放好了,但报错 “FileNotFoundError: dataset/train”?
A:路径写错了。用ls /root/workspace/my_classification/dataset/看真实目录名,注意大小写(Linux区分大小写!)和空格。Q:训练启动了,但 GPU 占用率是 0%?
A:检查train.py里是否漏了.cuda()。关键代码应为:model = model.cuda() inputs, labels = inputs.cuda(), labels.cuda()Q:Xftp 连不上?
A:镜像启动后,先在桌面右上角点“网络设置”,确认“桥接模式”已启用;Xftp 主机填127.0.0.1,端口22,用户名root,密码123456(默认)。
4. 总结:记住这四步,训练不再迷路
你不需要记住所有命令,只要建立清晰的动作链,就能稳稳推进:
- 启动镜像 → 打开终端 →
conda activate dl(确认提示符有(dl)) - Xftp 传代码 → 解压到
/root/workspace/xxx→cd /root/workspace/xxx(用ls验证) - 改
train.py三处:数据路径、类别数、保存路径 →python train.py(盯住第一轮 loss 是否下降) - 训完用 Xftp 双击下载
best_model.pth→ 本地加载测试效果
训练不是玄学,而是一连串确定的操作。每一次报错,都是系统在告诉你“这里需要调整”。把本文当操作手册,贴在屏幕边,遇到问题就扫一眼对应章节——你会发现,所谓“深度学习环境”,不过就是一套配合默契的工具,而你,已经握住了开关。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。