文章目录
-
- [01 本篇要解决什么问题](#01 本篇要解决什么问题)
- [02 背景:先分清本地电脑、登录节点与计算节点](#02 背景:先分清本地电脑、登录节点与计算节点)
- [03 实操:把远程环境逐层建立起来](#03 实操:把远程环境逐层建立起来)
- [04 一个具体例子:同一个脚本,在两台机器上分别验收](#04 一个具体例子:同一个脚本,在两台机器上分别验收)
- [05 常见问题与自测](#05 常见问题与自测)
- [06 本篇回顾与下一步](#06 本篇回顾与下一步)
01 本篇要解决什么问题
Windows上的代码能跑了,搬到服务器却又多出一批问题:当前操作的是哪台机器?文件应该放在哪里?没有管理员权限能不能建环境?关掉终端后任务会不会停止?
本篇以常见Linux x86_64服务器、Bash终端为例,建立可定位、可记录、便于后续远程开发的工作目录。Ubuntu 22.04/24.04可作为操作示例,具体系统与资源使用方式以所在平台为准。
- 本篇关键词:SSH、Linux、用户目录、Conda、tmux、日志、计算节点。
- 完成标志:能识别远程主机,在自己的环境里运行脚本,并知道输出在哪里。
- 一句话概括:服务器环境既包含Python依赖,也包含主机、权限、存储和任务运行方式。
02 背景:先分清本地电脑、登录节点与计算节点
本地电脑提供终端和编辑器;远程机器保存代码与数据,并执行程序。如果平台有调度系统,SSH进入的可能只是登录节点,训练需要进入分配到的计算资源。
| 位置或资源 | 主要用途 | 需要确认什么 |
|---|---|---|
| 本地电脑 | 编辑、发起连接、查看结果 | SSH客户端与网络 |
| 用户目录 | 环境、配置、小型文件 | 容量、权限与备份政策 |
| 数据盘或工作盘 | 数据集和较大输出 | 挂载、配额与清理政策 |
| GPU计算节点 | 实际训练 | 分配的GPU、CPU和运行时限 |
**有SSH账号,不自动代表能在任意节点长期训练。**先按照平台说明使用资源,后面的Conda与PyTorch命令再在正确节点上执行。
03 实操:把远程环境逐层建立起来
(1)先用普通SSH连接
在本地终端检查客户端:
powershell
ssh -V
下面的地址来自文档示例网段,用户名和端口都需要替换为管理员提供的信息:
powershell
ssh -p 22 your_name@203.0.113.10
首次连接按管理员提供的信息核对主机指纹,再完成认证。先让命令行SSH正常,后面再配置VS Code,便于区分网络、认证和编辑器问题。
(2)确认当前主机与系统
成功登录后,以下命令在远程Linux终端执行:
bash
whoami
hostname
pwd
uname -m
cat /etc/os-release
df -h "$HOME"
uname -m帮助区分x86_64与aarch64,安装器不能不看架构就通用。df反映文件系统容量;平台若另有用户配额,还要查看平台提供的配额信息。
使用NVIDIA GPU时再检查:
bash
nvidia-smi
在没有GPU的登录节点上查不到设备,并不能直接证明计算节点驱动坏了。先确认是否已经进入分配到GPU的环境。
(3)选择已有Conda,或在用户目录安装
若平台已经提供Conda或模块环境,优先按其使用说明加载,再执行conda --version。个人安装示例如下,仅适用于Linux x86_64,且目标目录尚未安装过Miniconda:
bash
mkdir -p "$HOME/software"
cd "$HOME/software"
curl -fL https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda-installer.sh
sha256sum miniconda-installer.sh
对照官方安装入口及下载页提供的信息核对安装文件,然后:
bash
bash miniconda-installer.sh -b -p "$HOME/miniconda3"
source "$HOME/miniconda3/etc/profile.d/conda.sh"
conda --version
已有目标目录时先检查现有安装,不把上述命令当作覆盖升级命令。ARM服务器应选择对应安装器,并确认操作系统与软件包支持。
驱动、系统库和全局工具属于另一层,通常由管理员维护;用户目录里的Python环境可以独立建立。
(4)创建与Windows同名的独立环境
bash
conda create -n dl-course python=3.11 pip -y
conda activate dl-course
python -m pip install --upgrade pip
python -m pip install numpy pillow matplotlib tqdm
python -c "import sys; print(sys.executable)"
python -m pip --version
环境名相同便于交流,不代表两个系统的二进制包完全相同。不要把Windows环境文件夹原样复制到Linux;应该依据项目依赖重新创建。
(5)固定项目位置,再传代码
在远程创建项目目录:
bash
mkdir -p "$HOME/dl-course-lab/examples"
mkdir -p "$HOME/dl-course-lab/data"
mkdir -p "$HOME/dl-course-lab/artifacts"
cd "$HOME/dl-course-lab"
然后回到本地PowerShell的项目根目录,把第01篇的练习脚本传过去:
powershell
scp -P 22 -r .\examples your_name@203.0.113.10:~/dl-course-lab/
SSH选择端口用小写-p,SCP选择端口用大写-P。以上只传代码;大数据集应按平台的数据传输要求处理。
(6)先在前台验证,再保存日志
在远程项目根目录运行:
bash
conda activate dl-course
python examples/check_image_io.py
python -u examples/check_image_io.py > artifacts/io_check.log 2>&1
tail -n 30 artifacts/io_check.log
-u让Python输出更及时,重定向把标准输出和错误写入日志。示例日志名会被覆盖;不同实验应换成独立文件名,避免覆盖已有记录。
绝对路径与相对路径都可以用,关键是清楚相对路径依赖哪个工作目录。Linux路径区分大小写,Data与data通常不是同一目录。
(7)理解tmux的用途与边界
平台允许交互式持续任务,且已提供tmux时:
bash
tmux new -s dl-course
进入后重新确认环境与目录,再运行任务。按Ctrl+b,松开后按d可以分离;之后重新连接:
bash
tmux ls
tmux attach -t dl-course
tmux把会话保留在远程,常能避免单纯关闭本地终端造成会话丢失;它不防服务器重启,也不替代作业调度器或检查点保存。调度平台上的长训练应按平台规则提交。

图:本地连接、远程用户环境与计算资源是不同位置。项目目录和运行输出应归属到实际执行程序的机器。
04 一个具体例子:同一个脚本,在两台机器上分别验收
第01篇在Windows生成了图片;现在在Linux执行同一个check_image_io.py。正常结果仍应为64×64 RGB图片,像素读写一致,但输出绝对路径会变成远程路径。
再比较:
bash
python -c "import sys, socket; print(socket.gethostname()); print(sys.executable)"
这能把"运行成功"变成更明确的描述:**在什么主机、用哪个解释器、从什么项目运行,结果写到哪里。**第03篇安装PyTorch后,再追加CPU与已分配GPU的训练验证。
05 常见问题与自测
问题1:没有sudo权限,能建立Python环境吗?
通常可以在有写权限的用户目录安装环境管理器。系统驱动和系统依赖另由管理员或平台维护。
问题2:SSH能登录,为什么看不到GPU?
可能当前是登录节点、未分配GPU或设备受隔离,也可能是驱动问题,需要按平台架构逐项判断。
问题3:把Conda环境文件夹复制过去能省安装吗?
跨Windows/Linux不能这样迁移。即使同系统,也需要考虑前缀路径和二进制兼容,应使用适当的环境重建或打包流程。
问题4:使用tmux后是否就不需要保存模型?
仍然需要。会话持续与训练状态可恢复是两件事,重启、超时或进程退出仍可能中断任务。
问题5:一段命令到底应该在本地还是远程执行?
看它操作谁的文件、环境和设备。连接命令从本地发起,远程依赖安装与训练在目标机器执行。
06 本篇回顾与下一步
服务器环境搭建完成后,应能回答主机、账号、环境、目录、设备和日志六个问题。保持这些信息明确,后面的远程调试和训练排错会简单很多。
| 中文 | 常用英文 |
|---|---|
| 远程登录 | SSH login |
| 登录节点/计算节点 | Login node / Compute node |
| 用户目录 | Home directory |
| 会话分离 | Session detaching |
| 日志重定向 | Log redirection |
下一篇集中处理CUDA与PyTorch:选择兼容构建,并用一次真实的前向、反向与模型保存验证运行链路。
参考与延伸阅读
- Conda安装与环境管理。
- tmux项目入门文档。
- PyTorch官方安装入口:后续核对系统和构建。