尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

从零部署Linux服务器深度学习环境:Anaconda+PyTorch+GPU实战指南

从零部署Linux服务器深度学习环境:Anaconda+PyTorch+GPU实战指南 大家好我是长期在实验室和服务器上“摸爬滚打”的开发者。相信很多同学在接触深度学习时都遇到过这样的困境实验室的服务器配置很高但面对黑乎乎的 Linux 终端却不知从何下手。想部署一个 PyTorch 环境结果被各种依赖、版本、权限问题搞得焦头烂额网上教程又零散不成体系。本文将为你提供一份从零开始的完整实战指南手把手教你如何远程连接实验室服务器并一步步搭建起一个稳定、高效的深度学习环境Anaconda PyTorch GPU。无论你是刚进实验室的研究生还是需要快速部署环境的开发者都能跟着本文的步骤避开常见大坑顺利完成环境配置。学完后你将能独立在远程 Linux 服务器上管理 Python 环境、安装深度学习框架并验证 GPU 是否可用。1. 背景与核心概念为什么需要远程服务器环境在开始动手之前我们先理清几个核心概念这能帮助你理解每一步操作背后的“为什么”。什么是实验室服务器通常指的是一台或多台高性能计算机配备了强大的 CPU、大内存以及最关键的计算设备——GPU图形处理器。与个人电脑不同服务器通常没有图形界面GUI只通过命令行Terminal进行远程操作和管理7x24小时运行专为长时间、高强度的计算任务如模型训练设计。为什么选择 LinuxLinux 是服务器领域的绝对主流操作系统原因包括高稳定性与性能内核高效长时间运行不易崩溃能充分发挥硬件性能。开源与免费无需支付授权费用拥有庞大的开源软件生态。强大的命令行工具对于远程管理和自动化任务来说命令行比图形界面更高效、更灵活。对深度学习框架友好TensorFlow、PyTorch 等主流框架在 Linux 上支持最完善社区资源最丰富。为什么需要 AnacondaAnaconda 是一个开源的 Python 发行版它集成了 Python 解释器、包管理工具conda以及大量科学计算库。在服务器环境中它的核心价值在于环境隔离可以为不同项目创建独立的 Python 环境避免包版本冲突。例如项目A需要 PyTorch 1.8项目B需要 PyTorch 2.0用 conda 可以轻松管理。便捷的包管理conda不仅可以安装 Python 包还能安装一些非 Python 的二进制依赖如 CUDA 工具包简化了环境搭建流程。预编译库提供的许多库是预编译好的避免了从源码编译的复杂过程。PyTorch 与 GPU 加速PyTorch 是一个广泛使用的深度学习框架以其动态计算图和易用性著称。要利用服务器上的 GPU 进行加速计算必须安装支持 CUDA 的 PyTorch 版本。CUDA 是 NVIDIA 推出的并行计算平台和编程模型PyTorch 通过 CUDA 来调用 GPU 进行计算。总结一下流程我们通过 SSH 远程登录到 Linux 服务器 → 安装 Anaconda 来管理 Python 环境 → 创建独立的虚拟环境 → 在该环境中安装支持 GPU 的 PyTorch → 验证环境是否配置成功。2. 环境准备与前置检查在开始部署之前我们需要确认并准备好以下几样东西。请务必与你的实验室管理员或导师确认。2.1 获取服务器访问信息你需要从管理员那里获得以下关键信息服务器 IP 地址例如192.168.1.100或一个域名。SSH 端口号通常是22但有些服务器会改用其他端口如2222以增强安全。你的用户名和密码用于登录服务器的账户。是否有 sudo 权限安装系统级软件如 NVIDIA 驱动需要sudo权限。通常个人用户没有需要管理员协助安装驱动。本文假设驱动已安装好。2.2 本地客户端准备你需要一个能连接 SSH 的终端工具。Windows 用户推荐使用MobaXterm功能强大自带 SFTP 文件传输或PuTTY经典轻量。Windows 10/11 自带的 PowerShell 或 Windows Terminal 也支持 SSH 命令。macOS/Linux 用户直接使用系统自带的终端Terminal应用程序即可。2.3 服务器端前置检查非常重要在登录服务器后请先执行以下检查命令。如果以下条件不满足后续步骤可能无法进行。检查 Linux 发行版了解系统版本有助于查找对应教程。cat /etc/os-release常见输出会显示Ubuntu 20.04、CentOS 7等。检查 GPU 及驱动这是使用 GPU 加速的前提。nvidia-smi如果命令不存在说明 NVIDIA 驱动未安装需要联系管理员安装。如果命令存在并输出信息恭喜你会看到 GPU 型号、驱动版本、CUDA 版本等信息。请记录下 CUDA Version例如11.7这决定了你应该安装哪个版本的 PyTorch。检查 Python 情况系统可能自带 Python但我们主要用 Anaconda 的。python3 --version检查网络连接确保服务器可以访问外网以下载安装包。ping -c 4 baidu.com如果无法 ping 通可能需要配置代理或联系管理员。本文示例环境说明服务器系统Ubuntu 20.04 LTSGPUNVIDIA GeForce RTX 3090 (驱动已装CUDA 版本为 11.7)用户拥有个人家目录的普通用户无sudo权限。目标在该用户目录下安装 Anaconda并配置 PyTorch 1.13 (CUDA 11.7) 环境。3. 第一步远程连接服务器我们将使用 SSHSecure Shell协议进行连接这是远程管理 Linux 服务器的标准方式。3.1 使用命令行连接macOS/Linux/Windows PowerShell打开你的本地终端输入以下命令ssh -p [端口号] [用户名][服务器IP]例如ssh -p 22 zhangsan192.168.1.100如果是默认的 22 端口可以省略-p 22。 首次连接时会提示你确认主机密钥输入yes即可。然后输入你的密码输入时不会显示回车登录。3.2 使用 MobaXterm 连接Windows打开 MobaXterm点击左上角的Session。在弹出的窗口中选择SSH。在Remote host栏输入服务器 IP在Username栏输入你的用户名。如果端口不是22在Advanced SSH settings选项卡中修改端口。点击OK在弹出的窗口中输入密码即可登录。登录成功标志命令行提示符会从你本机的用户名变为服务器的用户名例如zhangsanserver:~$。4. 第二步安装与配置 Anaconda我们将在你的个人家目录~下安装 Anaconda这样不需要sudo权限。4.1 下载 Anaconda 安装脚本首先进入一个临时目录然后使用wget命令从清华大学开源镜像站下载安装脚本速度更快。cd /tmp wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-1-Linux-x86_64.sh注意Anaconda 版本更新较快你可以访问 清华镜像站 Anaconda 目录 查看并选择最新的、适合 Linux 的.sh安装脚本链接进行替换。4.2 运行安装脚本bash Anaconda3-2023.03-1-Linux-x86_64.sh安装过程会有一系列提示按Enter键阅读许可协议一直按回车翻页。看到Do you accept the license terms? [yes|no]时输入yes并回车。接下来会提示安装路径默认是/home/你的用户名/anaconda3直接回车即可。强烈建议使用默认路径方便管理。最后会问Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no]输入yes。这会将 conda 添加到你的 shell 配置文件中如~/.bashrc这样每次登录都能直接使用 conda 命令。4.3 激活 conda 环境安装脚本完成后它通常会提示你需要重新打开终端或者运行source ~/.bashrc来使配置生效。source ~/.bashrc激活后你会发现命令行提示符前面多了一个(base)这表示你已经进入了 Anaconda 的 base 环境。(base) zhangsanserver:~$4.4 配置 conda 镜像源加速下载为了后续安装包时速度更快我们需要将 conda 的下载通道channel设置为国内镜像源。# 生成 conda 配置文件如果不存在 conda config --set show_channel_urls yes # 添加清华镜像源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ # 设置搜索时显示通道地址 conda config --set show_channel_urls yes你可以通过以下命令查看当前配置conda config --show channels5. 第三步创建独立的深度学习虚拟环境永远不要在 base 环境里直接安装项目依赖为每个项目创建独立环境是最佳实践。5.1 创建新环境我们创建一个名为dl_pytorch的环境并指定 Python 版本为 3.9一个比较稳定且兼容性好的版本。conda create -n dl_pytorch python3.9执行命令后conda 会解析依赖并列出将要安装的包输入y确认。5.2 激活与退出环境激活环境安装完成后使用以下命令进入该环境。conda activate dl_pytorch提示符会从(base)变为(dl_pytorch)。退出环境想回到 base 环境时使用conda deactivate查看所有环境conda env list星号*表示当前激活的环境。环境的意义此时dl_pytorch环境就像一个干净的“房间”里面只有 Python 3.9 和一些最基础的包。我们接下来安装的所有包如 PyTorch、numpy都只在这个“房间”里不会影响 base 环境或其他环境。6. 第四步安装 PyTorch 与 CUDA 工具包这是最关键的一步需要根据之前nvidia-smi查看到的 CUDA 版本选择对应的 PyTorch 安装命令。6.1 确定 PyTorch 版本访问 PyTorch 官网 你会看到一个安装命令生成器。PyTorch Build: 选择Stable (稳定版)。Your OS:Linux。Package:Conda(因为我们用 conda 管理)。Language:Python。Compute Platform: 这里选择与你服务器CUDA 版本匹配的选项。例如我们之前看到 CUDA 11.7就选择CUDA 11.7。如果 CUDA 版本是 11.8就选CUDA 11.8。务必匹配如果服务器没有 GPU 或你暂时只想用 CPU则选择CPU。官网会生成类似如下的命令# 例如对于 CUDA 11.7 conda install pytorch torchvision torchaudio pytorch-cuda11.7 -c pytorch -c nvidia重要提示直接使用-c pytorch -c nvidia会从官方频道下载速度可能很慢甚至失败。我们可以使用国内镜像源来安装。6.2 通过国内镜像安装 PyTorch我们可以从conda-forge或pytorch的国内镜像频道安装。以下命令以 CUDA 11.7 为例# 确保已经激活了 dl_pytorch 环境 conda activate dl_pytorch # 使用 conda-forge 镜像频道安装 PyTorch (推荐尝试) conda install pytorch torchvision torchaudio cudatoolkit11.7 -c conda-forge如果上述命令速度慢或找不到包可以尝试从北京外国语大学镜像站安装conda install pytorch torchvision torchaudio cudatoolkit11.7 -c https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/安装过程中conda 会解析大量依赖输入y确认。这个过程可能需要一段时间请耐心等待。6.3 验证 PyTorch 及 GPU 是否可用安装完成后我们需要写一个简单的 Python 脚本来验证。 首先在服务器上创建一个测试文件nano test_gpu.py如果不会用nano也可以用vim或echo命令写入内容 在打开的文件中输入以下代码import torch print(fPyTorch version: {torch.__version__}) print(fCUDA available: {torch.cuda.is_available()}) if torch.cuda.is_available(): print(fCUDA version: {torch.version.cuda}) print(fGPU device name: {torch.cuda.get_device_name(0)}) # 创建一个张量并移动到GPU x torch.rand(5, 3).cuda() print(fRandom tensor on GPU:\n{x}) else: print(CUDA is NOT available. Please check your installation.)按CtrlO保存再按CtrlX退出 nano。 然后运行这个脚本python test_gpu.py期望的输出PyTorch version: 1.13.1 CUDA available: True CUDA version: 11.7 GPU device name: NVIDIA GeForce RTX 3090 Random tensor on GPU: tensor([[0.1234, 0.5678, 0.9012], [0.3456, 0.7890, 0.1234], ...]], devicecuda:0)如果CUDA available为True并正确显示了 GPU 型号那么恭喜你PyTorch GPU 环境配置成功7. 第五步安装常用数据科学库深度学习项目通常还需要其他辅助库。我们可以在当前dl_pytorch环境中一并安装。# 确保在 dl_pytorch 环境下 conda activate dl_pytorch # 安装常用库使用 conda 或 pip 均可。conda 能更好地处理依赖。 conda install numpy pandas matplotlib scikit-learn jupyter notebook -y # 或者使用 pip 并指定清华镜像源加速 # pip install numpy pandas matplotlib scikit-learn jupyter -i https://pypi.tuna.tsinghua.edu.cn/simplenumpy: 数值计算基础库。pandas: 数据处理和分析。matplotlib: 绘图和数据可视化。scikit-learn: 机器学习工具库。jupyter notebook: 交互式编程环境非常适合在服务器上做探索性数据分析。8. 第六步配置 Jupyter Notebook 远程访问在服务器上运行 Jupyter Notebook然后从本地浏览器访问是一种非常高效的工作方式。8.1 生成 Jupyter 配置文件jupyter notebook --generate-config这会在~/.jupyter/目录下生成配置文件jupyter_notebook_config.py。8.2 设置密码重要为 Jupyter 设置密码避免使用默认的 token更安全方便。jupyter notebook password输入你想设置的密码它会将加密后的密码保存到配置文件中。8.3 修改配置文件使用文本编辑器打开配置文件nano ~/.jupyter/jupyter_notebook_config.py找到并修改以下几行去掉注释#并修改值# 允许所有IP访问 c.NotebookApp.ip 0.0.0.0 # 禁止自动打开浏览器服务器没有浏览器 c.NotebookApp.open_browser False # 指定端口号例如 8889避免与常用端口冲突 c.NotebookApp.port 8889 # 设置工作目录例如你的项目目录 c.NotebookApp.notebook_dir /home/zhangsan/projects # 允许远程访问 c.NotebookApp.allow_remote_access True保存并退出。8.4 启动 Jupyter Notebook 并本地访问在服务器上启动# 建议在后台运行这样关闭终端也不会停止服务 nohup jupyter notebook --allow-root jupyter.log 21 nohup和使得命令在后台运行输出重定向到jupyter.log文件。在本地浏览器访问打开本地浏览器。在地址栏输入http://[服务器IP]:8889例如http://192.168.1.100:8889输入你刚才设置的密码即可登录并使用 Jupyter Notebook。注意如果无法访问可能是服务器防火墙阻止了该端口。需要联系管理员在防火墙中开放你设置的端口如8889。9. 常见问题与排查思路 (FAQ)在部署过程中你很可能遇到以下问题。这里提供系统的排查思路。问题现象可能原因排查步骤与解决方案ssh: connect to host ... port 22: Connection refused1. IP或端口错误。2. 服务器SSH服务未运行。3. 防火墙阻止。1. 确认IP和端口。2. 联系管理员确认SSH服务状态 (sudo systemctl status sshd)。3. 联系管理员检查防火墙。nvidia-smi: command not foundNVIDIA显卡驱动未安装。联系服务器管理员安装驱动。这是使用GPU的前提普通用户通常无法自行安装。conda: command not found1. Anaconda未安装成功。2.conda init未生效。1. 重新运行安装脚本或检查安装路径。2. 执行source ~/.bashrc或重新登录终端。检查~/.bashrc文件末尾是否有 conda 初始化代码。创建环境时Solving environment: failed1. 网络问题无法连接 conda 仓库。2. 指定的包版本冲突。1. 检查网络 (ping)配置 conda 镜像源见4.4节。2. 尝试不指定具体版本如conda create -n env_name python。安装 PyTorch 时速度极慢或失败默认从国外源下载。1.务必配置 conda 镜像源见4.4节。2. 使用-c conda-forge或国内镜像频道见6.2节。3. 可以尝试先用pip安装需匹配CUDA版本但依赖管理不如 conda。torch.cuda.is_available()返回False1. PyTorch 版本与 CUDA 版本不匹配。2. 系统 CUDA 驱动版本太低。3. PyTorch 安装的是 CPU 版本。1.核对版本nvidia-smi顶部的 CUDA Version 是驱动支持的CUDA最高版本而conda list | grep cudatoolkit是运行时版本。两者需兼容且 PyTorch 安装命令中的 cudatoolkit 版本应与之匹配或更低。2. 使用conda list检查安装的pytorch和cudatoolkit包。3. 尝试完全卸载后严格按照官网生成的命令或镜像源对应命令重装。Jupyter Notebook 无法远程连接1. 服务器防火墙未开放端口。2. Jupyter 配置错误。3. 服务器有多个网卡绑定IP不对。1. 联系管理员开放端口。2. 检查配置文件c.NotebookApp.ip 0.0.0.0。3. 查看启动日志cat jupyter.log获取确切错误。ImportError: libGL.so.1: cannot open shared object file缺少系统图形库常见于 OpenCV 等库。在 Ubuntu 上安装sudo apt-get install libgl1-mesa-glx(需要sudo权限)。若无权限可尝试安装opencv-python-headless版本。10. 最佳实践与工程建议成功搭建环境只是第一步遵循以下最佳实践能让你的科研或开发工作更顺畅、更专业。10.1 环境管理一项目一环境为每个独立的深度学习项目创建单独的 conda 环境用environment.yml文件记录所有依赖。# 导出当前环境配置 conda env export environment.yml # 他人或自己在新机器上复现环境 conda env create -f environment.yml环境命名规范使用清晰的名字如project_name_pytorch1.13_cu117。定期清理使用conda clean -a定期清理无用的缓存包。10.2 文件与目录组织家目录结构在你的家目录下建立清晰的文件夹结构。~/ ├── projects/ # 所有项目 │ ├── cv_project/ # 计算机视觉项目 │ ├── nlp_project/ # 自然语言处理项目 │ └── ... ├── datasets/ # 公共数据集可软链接到数据盘 ├── tools/ # 自定义脚本、工具 └── environments/ # 存放各项目的 environment.yml 文件使用软链接如果服务器有专门的大容量数据盘将数据集放在那里并在家目录下创建软链接节省主目录空间。ln -s /data/public_datasets/coco ~/datasets/coco10.3 代码与实验管理版本控制务必使用 Git将代码、配置和实验脚本纳入版本管理。.gitignore中忽略数据集、模型权重、日志等大文件。实验记录每次训练都应有记录。可以简单使用一个README.md或实验日志.txt记录环境配置、超参数、数据集版本、训练命令、关键结果和观察。更专业的可以使用 MLflow、Weights Biases 等工具。使用 Screen 或 Tmux在服务器上运行长时间任务如模型训练时使用screen或tmux创建会话。这样即使你关闭本地终端任务也会在服务器后台继续运行之后可以重新连接查看。# 使用 screen 示例 screen -S training_session # 创建名为 training_session 的会话 python train.py # 在会话中启动训练 # 按 CtrlA, 再按 D 分离会话 screen -ls # 查看所有会话 screen -r training_session # 重新连接会话10.4 性能与资源使用监控 GPU 状态训练时经常使用nvidia-smi或watch -n 1 nvidia-smi来监控 GPU 利用率、显存占用和温度。合理申请资源如果是共享服务器使用htop查看 CPU/内存使用情况避免自己的任务挤占他人资源。代码优化在数据加载 (DataLoader的num_workers)、混合精度训练 (torch.cuda.amp)、梯度累积等方面进行优化以充分利用 GPU。10.5 安全与协作保管好密码SSH 密码和 Jupyter 密码不要泄露。谨慎使用sudo如果你是普通用户不要尝试执行需要sudo的命令以免破坏系统。友好协作在共享服务器上不要删除或移动他人的文件。在/tmp等公共区域处理临时文件并及时清理。至此你已经掌握了从零开始远程部署 Linux 服务器深度学习环境的全套技能。从连接服务器、安装 Anaconda、创建虚拟环境、匹配版本安装 PyTorch到配置 Jupyter 远程访问和排查常见问题这套流程覆盖了绝大多数场景。记住核心思路是隔离、版本匹配和镜像加速。遇到问题多查日志、善用搜索引擎和官方文档。现在你可以在强大的服务器 GPU 上尽情跑你的模型了。如果在实践中遇到新的问题欢迎在评论区交流讨论。
返回列表