机器学习训练中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”的完整训练迭代。完成一次模型参数的更新,数值上等于

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)