Ultralytics YOLOv5 🚀:AWS Deep Learning 实例完整指南#
设置高性能深度学习环境可能令人望而生畏,尤其是对初学者而言。但别担心!🛠️ 本指南将分步介绍如何在 AWS Deep Learning 实例上运行Ultralytics YOLOv5。借助 Amazon Web Services (AWS) 的强大能力,即使是刚接触机器学习 (ML)的用户,也能快速且经济高效地开始使用。AWS 平台的可扩展性使其非常适合实验和生产部署。
YOLOv5 的其他快速入门选项包括我们的 Google Colab 笔记本 、Kaggle 环境
、GCP Deep Learning VM,以及我们在 Docker Hub
上提供的预构建 Docker 镜像。
第 1 步:登录 AWS 控制台#
首先创建账户或登录 AWS 管理控制台。登录后,进入 EC2 服务控制面板,在这里你可以管理虚拟服务器(实例)。

第 2 步:启动实例#
在 EC2 控制面板中,点击 Launch Instance 按钮。这将开始创建符合你需求的新虚拟服务器。

选择合适的 Amazon Machine Image (AMI)#
选择正确的 AMI 至关重要,因为它决定了实例的操作系统和预安装软件。在搜索栏中输入 '深度学习',然后选择最新的基于 Ubuntu 的 Deep Learning AMI(除非你对其他操作系统有特定要求)。Amazon 的 Deep Learning AMI 已预配置常用的深度学习框架(例如 YOLOv5 使用的 PyTorch)和必需的 GPU 驱动程序,可以显著简化设置过程。

选择实例类型#
对于训练深度学习模型等高负载任务,强烈建议选择 GPU 加速的实例类型。与 CPU 相比,GPU 可以大幅缩短模型训练所需的时间。选择实例大小时,请确保其内存容量(RAM)足以满足你的模型和数据集需求。
注意: 模型和数据集的大小是关键因素。如果你的 ML 任务所需内存超过所选实例提供的容量,则需要选择更大的实例类型,以避免性能问题或错误。
在 EC2 实例类型页面上查看可用的 GPU 实例类型,尤其是 Accelerated Computing 类别下的类型。

有关监控和优化 GPU 使用情况的详细信息,请参阅 AWS 的 GPU 监控和优化指南。使用按需定价比较成本,并通过竞价型实例定价探索潜在的节省空间。
配置实例#
考虑使用 Amazon EC2 竞价实例以获得更具成本效益的方法。竞价实例允许你对未使用的 EC2 容量进行竞标,通常比按需实例价格大幅折扣。对于必须经受中断的训练,请选择持久请求并将中断行为设置为停止而不是终止,这样可以保留 EBS 卷和你的训练输出,并在容量恢复时重启实例。

继续完成实例启动向导中的第 4-7 步,配置存储、添加标签、设置安全组(确保从你的 IP 地址开放 SSH 端口 22),并在点击 Launch 前检查设置。你还需要创建或选择一个现有密钥对,以便安全地通过 SSH 访问。
第 3 步:连接到实例#
当实例状态显示为 'running' 后,从 EC2 控制面板中选中它。点击 Connect 按钮查看连接选项。在本地终端中使用系统提供的 SSH 命令示例(macOS/Linux 上的 Terminal,或 Windows 上的 PuTTY/WSL)建立安全连接。你需要使用在启动过程中创建或选择的私钥文件(.pem)。

第 4 步:运行 Ultralytics YOLOv5#
现在你已经通过 SSH 连接,可以设置并运行 YOLOv5。首先从 GitHub 克隆官方 YOLOv5 仓库,并进入该目录。然后,使用 pip 安装所需依赖。建议使用 Python 3.8 或更高版本的环境。当你运行训练或检测等命令时,所需的模型和数据集会自动从最新的 YOLOv5 版本下载。
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5
# Install required packages
pip install -r requirements.txt环境准备就绪后,你可以开始使用 YOLOv5 执行各种任务:
# Train a YOLOv5 model on a custom dataset (e.g., coco128.yaml)
python train.py --data coco128.yaml --weights yolov5s.pt --img 640
# Validate the performance (Precision, Recall, mAP) of a trained model (e.g., yolov5s.pt)
python val.py --weights yolov5s.pt --data coco128.yaml --img 640
# Run inference (object detection) on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos/ --img 640
# Export the trained model to various formats like ONNX, CoreML, TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640可选操作:增加交换空间#
如果你正在处理非常大的数据集,或在训练期间遇到内存限制,增加实例上的交换空间有时会有所帮助。交换空间允许系统使用磁盘空间作为虚拟 RAM。
# Allocate a 64GB swap file (adjust size as needed)
sudo fallocate -l 64G /swapfile
# Set correct permissions
sudo chmod 600 /swapfile
# Set up the file as a Linux swap area
sudo mkswap /swapfile
# Enable the swap file
sudo swapon /swapfile
# Verify the swap memory is active
free -h恭喜!🎉 你已成功设置 AWS Deep Learning 实例、安装 Ultralytics YOLOv5,现在可以执行目标检测任务了。无论你是在试验预训练模型,还是使用自己的数据进行训练,这个强大的设置都能为你的计算机视觉项目提供可扩展的基础。如果遇到任何问题,请查阅详尽的 AWS 文档以及 Ultralytics 社区提供的实用资源,例如 FAQ。祝你检测愉快!
常见问题#
选择最新的基于 Ubuntu 的 AWS 深度学习 AMI。它预装了 NVIDIA 驱动程序、CUDA 和 PyTorch,因此剩下的唯一设置是克隆仓库并安装
requirements.txt。加速计算系列中的任何 GPU 实例都可以使用,例如
g4dn、g5或p3实例。为你的批次大小和图像大小选择足够的 GPU 内存,并使用--batch-size -1让 YOLOv5 选择适合的最大批次。对于小型传输,请将
scp与你的.pem密钥一起使用,或者在 Amazon S3 中暂存数据并使用aws s3 sync进行复制。训练输出存放在runs/train/中,权重位于runs/train/exp/weights/中。使用将中断行为设置为停止的持久竞价请求以保留 EBS 卷,然后在实例重启后使用
python train.py --resume从其最后一个检查点恢复运行。如果你承受不起进度丢失的代价,请定期将last.pt和best.pt复制到 S3。