返回 Ultralytics 术语表
Epoch
了解机器学习中的 epoch 是什么,以及它如何影响模型训练。探索优化方法、避免过拟合,并轻松训练 Ultralytics YOLO26。
一个训练轮次表示机器学习算法完整遍历整个训练数据集一次。在此过程中,模型有机会根据数据中的每个样本各更新一次其内部参数。在深度学习中,仅进行一次遍历通常不足以让神经网络有效学习复杂模式。因此,训练通常会进行多个训练轮次,使学习算法能够迭代优化其理解,并最小化预测结果与实际真实值之间的误差。
训练轮次在优化中的作用#
训练的主要目标是调整模型权重,以最小化特定的损失函数。随机梯度下降(SGD)和Adam 优化器等优化算法会利用每个训练轮次中计算出的误差来指导这些调整。随着训练轮次数量增加,模型通常会从高误差状态(随机猜测)转变为低误差状态(学到模式)。
然而,选择正确的训练轮次数量是超参数调优中的关键环节。
- 训练轮次过少: 这可能导致欠拟合,此时模型尚未捕捉到数据的潜在趋势。
- 训练轮次过多: 这通常会导致过拟合,此时模型记住的是训练噪声,而不是对新数据进行泛化。为避免这种情况,开发者通常会监控验证数据上的性能,并采用提前停止等技术,在泛化能力不再提升时停止训练。
训练轮次、批次与迭代的区别#
初学者常常会将“训练轮次”与相关术语混淆。理解这些概念之间的层级关系,对于正确配置训练循环至关重要:
- 训练轮次: 完整遍历整个数据集一次。
- 批次: 同时处理的数据集子集。由于数据集通常过大,无法一次性装入GPU 内存,因此会根据批次大小将其划分为更小的组。
- 迭代: 对模型权重进行一次更新。如果数据集包含 1,000 张图像,批次大小为 100,则完成一个训练轮次需要进行 10 次迭代。
实际应用#
所需的训练轮次数量会因任务的复杂程度和数据规模而有很大差异。
- 医学图像分析: 在医学图像分析中,例如检测 MRI 扫描中的肿瘤,准确性至关重要。针对这些任务训练的模型通常会运行数百个训练轮次。如此充分的训练可以确保卷积神经网络(CNN)识别出区分恶性组织与健康组织的细微异常,从而有可能挽救生命。
- 自动驾驶: 对于自动驾驶车辆,目标检测模型必须可靠地识别行人、标志和其他车辆。训练这些强健的系统通常需要使用COCO或Objects365等大型数据集。尽管数据集规模庞大,模型仍需要多个训练轮次,才能收敛到一个能够很好泛化至各种天气和光照条件的解决方案。
使用代码管理训练周期#
使用Ultralytics YOLO等现代框架时,可以在训练命令中通过一个简单的参数定义训练轮次数量。Ultralytics Platform等工具可以帮助你可视化每个训练轮次的损失曲线,从而确定最佳停止点。
以下示例演示了训练YOLO26模型时如何设置训练轮次数量:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train the model for 50 epochs
# The 'epochs' argument determines how many times the model sees the entire dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)在这段代码中,epochs=50参数会指示训练引擎遍历coco8.yaml数据集 50 次,每次遍历均为一次独立的训练轮次。在每个周期中,模型都会执行前向传播和反向传播,以优化其检测能力。









