阿里云企业认证 阿里云深度学习环境搭建
阿里云深度学习环境搭建:从买服务器到跑通第一个模型
别被「深度学习环境搭建」这几个字吓住——它听起来像在给火箭加注燃料,实际操作起来,也就相当于在家装个带显卡的高级游戏机,再装几款APP而已。只不过,这次你的「主机」是阿里云ECS,你的「显示器」是浏览器,而你的「第一款APP」,可能是PyTorch里那行print(torch.cuda.is_available())——当它终于吐出一个骄傲的True时,你会忍不住对着屏幕比个耶。
第一步:挑一台不抠门的ECS(别省那几十块)
打开阿里云控制台,点「云服务器ECS」→「创建实例」。这时候千万别手滑选「共享型s6」——它连装驱动都可能报错「No supported GPU found」,不是GPU不支持,是它压根没GPU。正确姿势:搜索「gn6v」或「gn7i」,这是阿里云专为AI训练设计的GPU机型。推荐新手起步选gn6v-c8g1.2xlarge(1×V100 32G + 8核CPU + 32G内存),月付约¥900,学生认证后首月¥9.9——够你跑完《动手学深度学习》前三章,顺带调通一个ResNet-18。
系统镜像选「Ubuntu 20.04 64位」(别用18.04,CUDA 11.4+对它支持已打补丁;也别用22.04,某些cuDNN版本会悄悄给你使绊子)。安全组务必放行22(SSH)和8888(Jupyter)端口——否则你连不上服务器,更别说跑代码了。
第二步:登上去,先让显卡「活」过来
拿到公网IP和root密码后,终端敲:ssh root@你的IP。登录成功第一件事,不是装Python,而是确认GPU是否被系统「看见」:nvidia-smi
如果返回「command not found」——恭喜,显卡还在冬眠;如果返回一堆乱码或「Failed to initialize NVML」——显卡醒了但没完全醒。这时请执行:apt update && apt install -y linux-headers-$(uname -r)
然后去NVIDIA官网查对应V100的驱动版本(截至2024年,稳定首选515.65.01),下载并安装:wget https://us.download.nvidia.com/tesla/515.65.01/NVIDIA-Linux-x86_64-515.65.01.runchmod +x NVIDIA-Linux-x86_64-515.65.01.run./NVIDIA-Linux-x86_64-515.65.01.run --no-opengl-files --no-nouveau-check
阿里云企业认证 注意!安装过程会提示「是否安装NVIDIA自带的nouveau禁用脚本」,选YES;若提示「检测到已存在驱动」,选「uninstall」再重装。装完重启:reboot,再敲nvidia-smi——看到GPU温度、显存占用、进程列表?成了!
第三步:CUDA + cuDNN,不是套娃,是搭桥
CUDA是英伟达的「普通话」,cuDNN是优化过的「方言」,两者必须版本对齐。PyTorch官网明确写着「CUDA 11.3 → cuDNN 8.2」,我们就照单抓药。
先装CUDA Toolkit(非Driver!Driver已装过):wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.runsudo sh cuda_11.3.1_465.19.01_linux.run
安装时取消勾选「NVIDIA Driver」(我们刚装过!),只留「CUDA Toolkit」和「CUDA Samples」。装完执行:echo 'export PATH=/usr/local/cuda-11.3/bin:$PATH' >> ~/.bashrcecho 'export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH' >> ~/.bashrcsource ~/.bashrc
再装cuDNN:去cuDNN历史版本页,登录后下载cudnn-11.3-linux-x64-v8.2.1.32.tgz。解压复制:tar -xzvf cudnn-11.3-linux-x64-v8.2.1.32.tgzsudo cp cuda/include/cudnn*.h /usr/local/cuda-11.3/includesudo cp cuda/lib/libcudnn* /usr/local/cuda-11.3/lib64sudo chmod a+r /usr/local/cuda-11.3/include/cudnn*.h /usr/local/cuda-11.3/lib64/libcudnn*
验证:运行nvidia-smi看驱动版本,nvcc -V看CUDA版本,cat /usr/local/cuda-11.3/include/cudnn_version.h | grep CUDNN_MAJOR -A 2看cuDNN——三者全绿,桥就搭稳了。
第四步:Anaconda登场,虚拟环境才是体面人
别用系统Python!别用pip全局装!深度学习依赖地狱不是传说。直接上Anaconda:wget https://repo.anaconda.com/archive/Anaconda3-2023.07-Linux-x86_64.shbash Anaconda3-2023.07-Linux-x86_64.sh -b -p $HOME/anaconda3echo 'export PATH=$HOME/anaconda3/bin:$PATH' >> ~/.bashrcsource ~/.bashrc
建两个环境,互不干扰:conda create -n dl-pytorch python=3.9conda activate dl-pytorchpip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
再开一个TensorFlow环境:conda create -n dl-tf python=3.9conda activate dl-tfpip install tensorflow-gpu==2.10.0(TF 2.10是最后一个官方支持CUDA 11.2+的版本)
测试:进Python,import torch; print(torch.cuda.is_available())——True!import tensorflow as tf; print(tf.test.is_built_with_cuda(), tf.test.is_gpu_available())——两个True!此刻,你已拥有双模态算力自由。
第五步:Jupyter远程访问,把实验室搬进浏览器
本地写代码?不存在的。我们要的是:咖啡杯旁打开Chrome,输入http://你的IP:8888,直接进入Notebook世界。
先生成配置:jupyter notebook --generate-configpython -c "import IPython; print(IPython.lib.passwd())"(输入密码,记住密文)
编辑配置文件:nano ~/.jupyter/jupyter_notebook_config.py
粘贴以下四行(注意替换your_password_here):c.NotebookApp.ip = '0.0.0.0'c.NotebookApp.password = 'sha1:xxxxxxxxxxxxxxx'c.NotebookApp.open_browser = Falsec.NotebookApp.port = 8888
后台启动:nohup jupyter notebook --allow-root > jupyter.log 2>&1 &
现在,打开浏览器,输入http://你的IP:8888,输入密码——欢迎来到云端GPU实验室。建议新建check_gpu.ipynb,写三行:
import torch
x = torch.randn(3, 3).cuda()
print(x.device) # 输出: cuda:0 ✅
最后送你三条血泪经验
- 别信「一键脚本」——网上那些
curl xxx | bash,大概率把你的系统搞成CUDA和Driver互相拉黑的修罗场; - 升级前先
conda list截图备份,某次conda update --all让我花两小时找回能用的PyTorch版本; - 安全组端口没开?Jupyter打不开?先
telnet 你的IP 8888试试——通不了就是防火墙问题,不是代码问题。
至此,你的阿里云ECS已从一块裸金属,蜕变为可随时召唤的深度学习引擎。下一步?找一个Kaggle入门赛,把数据集上传到/home/ubuntu/data,然后——python train.py --gpu 0。愿你的loss曲线早日收敛,愿你的acc值一路狂奔,愿你在深夜debug时,总有一行print('success!')为你点亮屏幕。

