通过混合精度训练提高深度学习效率!在不牺牲准确性的前提下,实现更快的速度、更少的内存使用和节能。
混合精度是一种功能强大的优化技术。 深度学习策略性地 混合精度是一种强大的深度学习优化技术,它战略性地结合了不同的数值格式,特别是 16 位(半精度)和 32 位(单精度)浮点型 类型,以加速 模型训练并减少 内存使用量。通过以较低精度执行计算密集型操作,同时保留一个 模型权重的主副本、 这种方法可在现代硬件上显著提高速度,同时不影响 精度或最终网络的稳定性 网络的准确性或稳定性。它能有效地让研究人员和工程师训练更大的 神经网络或增加 批次规模在相同的硬件 限制。
混合精度的核心机制依赖于现代加速器的结构,例如那些配备了 NVIDIA Tensor 核心等现代加速器的架构,它们能以 半精度(FP16)的矩阵乘法速度 比标准单精度(FP32)更快。这一过程一般包括三个关键步骤:
混合精度已成为人工智能各个领域的标准做法,因为它能最大限度地提高硬件效率。 最大限度地提高硬件效率。
"(《世界人权宣言》) ultralytics 库简化了自动混合精度 (AMP) 的使用。默认情况下,训练
例程会检查兼容硬件并启用 AMP,以确保最佳性能。
from ultralytics import YOLO
# Load the YOLO11 model for training
model = YOLO("yolo11n.pt")
# Train using Automatic Mixed Precision (AMP)
# 'amp=True' is the default setting, ensuring faster training on supported GPUs
results = model.train(data="coco8.yaml", epochs=5, imgsz=640, amp=True)
将混合精度与其他优化和数据表示概念区分开来很有帮助:
支持的框架包括 等框架PyTorch 支持下等框架的支持下,混合精度仍然是实现高性能深度学习平民化的最有效方法之一、 使开发人员能够在可访问的硬件上训练复杂的模型。