机器学习训练中Epoch、Batch、Bath_size、Data_size的区别

最近在做实验的过程中,总是会把epoch、batch_size和data_size搞混,为了彻底搞明白他们之间的联系,遂写出这个博客。

在实际训练中,一般对上述的术语定义为epoch、Training_batch_size、Training_data_size

1,什么是epoch、batch_size和data_size?

Training_data_size: 训练集大小,指训练过程中实际使用的训练样本数量。也即 "每个 epoch 会遍历的数据总量"。对于监督学习,它通常表示样本的数量;对于强化学习,它常常表示 task / query / prompt 的数量。

Epoch(全部数据集): 简单来说,Epoch 是​​​​​​指完整训练数据集被模型遍历一遍。 一个 epoch 通常包含多次参数更新 一个 epoch 通常包含多个 training step。也即通常多次参数更新,而不是只完成一次参数更新。

Batch(批数据大小): 这个词语的来源主要是为了解释模型更新参数时的单位,一个完整的数据集拿来更新太大了,要切分为几份分别喂给模型进行训练(计算loss和更新policy model,也就是模型),这每一份数据就是一个batch,模型在更新(比如均方误差损失MSE、交叉熵损失)时数据的最小更新单位就是batch。用来计算平均的均方损失或交叉熵损失,否则平均没法定义。**Training_batch_size:**指训练过程中,训练一步,即一次inference(推理)、训练和更新参数时需要的数据量。

**Training_step:**通常指一次 optimizer update,或者在某些 RL 框架中指一次"rollout + reward 计算 + policy update"的完整训练迭代。完成一次模型参数的更新,数值上等于

相关推荐
宿州派大星8 小时前
Python实战:PyQt5 + OpenCV + Dlib 打造AI桌面应用
人工智能·python·qt
风娜9 小时前
IT 疑难杂症诊疗室:从现象到根因的系统排查方法论
人工智能·github
碧海银沙音频科技研究院9 小时前
炬芯ATS3089X手表的HFP通话不自动路由到设备BT的问题解决
网络·人工智能·嵌入式硬件·算法
承渊政道9 小时前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(开源大模型ChatGLM高级定制化应用实战)
人工智能·pytorch·python·llm·模型微调·glm
howdoyoudo2026069 小时前
AI审计手记 #28:从“暂停训练”到“切断联网”——AI安全控制手段的极限升级
大数据·人工智能·安全·ai·语言模型
colman wang9 小时前
人工智能课程(配套AIMA(Artificial Intelligence: A Modern Approach))
人工智能
LinXunFeng13 小时前
Draw Things 换装 LoRA 实战:用 Silo 秒装,同一提示词对比出图
人工智能·开源·aigc
xiaohaiAIgeo13 小时前
【2026年】通风柜自动门安全吗?联锁逻辑与防夹设计
人工智能·安全·科普知识
像风一样自由202013 小时前
52.Docker部署大模型应用从本地开发到服务化运行
运维·人工智能·docker·容器·大模型·智能体