Epoch和batch的简单理解

Epoch

Epoch 是指完成一次对整个训练数据集的完整遍历和更新的过程。换句话说,一次 epoch 就是指模型看完所有训练数据并更新参数一次。

Batch

Batch 是指将训练数据集分成更小的子集,每个子集称为一个 batch。模型在训练过程中会逐个 batch 地处理数据和更新参数,而不是一次性地使用整个数据集。这么做的好处是可以减少内存消耗并加速训练过程。处理完一个 batch 数据并更新参数的过程称为一次 batch iteration

举例说明

假设你有一个包含 1000 条样本的数据集,并将其划分为 batch size 为 100 的 batch:

  • 每个 batch 包含 100 条样本。
  • 这意味着每个 epoch 需要处理 10 个 batch(1000 / 100 = 10)。
  • 如果你训练 10 个 epoch,这表示你的模型将遍历整个数据集 10 次,总共进行 100 次 batch iteration(10 个 epoch * 10 个 batch = 100 次 iteration)。

更形象的解释

假设你在学习一本有 100 页的书:

  • Epoch: 就是你从第一页读到第 100 页,这算作一个 epoch。然后你再回到第一页,重新读一遍,这样又完成了一个 epoch。
  • Batch: 你不想一次读完 100 页,你决定每天读 10 页。那么,每天的 10 页就是一个 batch。完成一次 epoch 你需要 10 天时间。

为什么要使用 batch

  1. 内存限制: 对于大型数据集,一次性加载到内存中并进行训练可能会导致内存不足。将数据集分成更小的 batch 可以有效利用内存。
  2. 计算效率: 批量处理可以利用现代硬件(如 GPU)的并行计算能力,提高训练速度。
  3. 梯度估计: 使用 batch 可以在每次参数更新时计算一个梯度的平均值,这可以平滑梯度并使训练更加稳定。
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值