AWS 服务器训练深度学习模型 (Yolov5)
大二时候学习了深度学习后,开始上手自己训练模型。在训练过几个模型后,觉得使用自己的笔记本训练模型算力实在是吃紧 (后来还导致笔记本烧主板),于是租用了 AWS 服务器进行模型训练。
AWS 服务器训练深度学习模型 (以 Yolov5 为例)
参考了李沐老师的视频
现在回过头来看,还是用 Google 的 Colab 会员训练似乎更划算一些,能租到 A100 和 T4,费用也不算太离谱
购买 AWS 服务器
注册 AWS 账号
配置服务器类型
系统 Ubuntu
较便宜 GPU 类型:g4dn
查看配置和价格网站
存储从 8GB 改为 20GB 或者更大
选择密钥 (没有密匙的话可以新建一个)
复制 ip 地址
登陆服务器并配置环境
登陆服务器
SSH 连接到服务器
先修改权限 连接服务器
1
2
3
4
5
6
7
8
9更改密钥权限
chmod 400 Downloads/key.pem
连接服务器
ssh -i Downloads/key.pem ubuntu@***.***.***
更新软件源
sudo apt-get update
安装必要依赖包
sudo apt-get install build-essential
sudo apt-get install unzip
安装 CUDA 环境
去英伟达官网下载 cuda
1 | 安装cuda |
安装 miniconda
去 miniconda 官网获取安装链接 (根据服务器的架构选择对应的安装包,一般 x86 的 linux 机器选择 linux64bit 即可,arm 则对应 aarch64)
Miniconda - Conda documentation
1 | 运行sh文件 安装 |
安装 pytorch
去官网获取 pytorch 下载链接(Stable -Linux-Pip-python-CUDA11.*)
1 | pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116 |
上传代码
git 下载 Yolov5 代码 上传 jupyter notebook 代码
GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
1 | git https://github.com/ultralytics/yolov5.git |
开始训练
接下来就是开始训练模型了,第一次训练模型的时候完全不懂怎么训练,使用了质量不高的 Dataset,导致模型在测试集上的表现一直提不上去,就算使用了 Data Augment 和 Dropout 这些方法也无济于事,此外也尝试过使用迁移学习的一些方法,冻结部分网络结构的权重再进行针对性的训练,但是最终结果都还是不够理想。
后来发现了 Roboflow 这个网站上有大量的图像数据集,而且有 Health Check 功能,可以提前判断数据集的质量。最终找到一个质量还算比较好的数据集,最后还是训练出了比较满意的结果 (不过和那些 SOTA 模型还是没法比的 hhhh)