了解机器学习中的 epoch 是什么以及它如何影响模型训练。探索优化,避免过拟合,并轻松训练 Ultralytics YOLO26。
一个epoch代表机器学习算法对整个训练数据集的一次完整遍历。在此过程中,模型有机会根据数据中的每个样本精确地更新其内部参数一次。在深度学习中,单次遍历通常不足以让神经网络有效地学习复杂模式。因此,训练通常涉及多个epoch,使学习算法能够迭代地完善其理解,并最小化其预测与实际真实值之间的误差。
训练的主要目标是调整模型权重以最小化特定的损失函数。优化算法,例如stochastic gradient descent (SGD)或Adam optimizer,利用每个 epoch 期间计算的误差来指导这些调整。随着 epoch 数量的增加,模型通常会从高误差状态(随机猜测)转变为低误差状态(学习到的模式)。
然而,选择正确的epoch数量是超参数调优的一个关键方面。
初学者常将“epoch”与相关术语混淆。理解这些概念的层次结构对于正确配置训练循环至关重要:
所需的迭代次数因任务复杂性和数据量而差异巨大。
使用 Ultralytics YOLO 等现代框架时,在训练命令中定义 epoch 数量是一个直接的参数。像 Ultralytics Platform 这样的工具可以帮助可视化每个 epoch 的损失曲线,以识别最佳停止点。
以下示例演示了在训练YOLO26模型时如何设置epoch计数:
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 次。在每个循环中,模型执行
前向传播 和
反向传播 改进其detect能力。
开启您的机器学习未来之旅