epoch和step关系

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

. 基本定义

  • epoch (轮,周期):

    一个epoch代表“所有训练数据被完整训练一遍”。

    例如有1000条数据,每个epoch就是“模型看完整这1000条数据一次”。

  • step (步,迭代步):

    一个step指“模型基于一个batch(批次)完成一次参数更新”。

    例如,每次输入batch_size=32条数据,模型把这32条数据喂进去,完成一次前向和反向传播+参数更新,这就叫1 step。


2. epoch与step的数学关系

假设你有:

  • 数据集总条数:$N$
  • batch size(每次训练的样本数):$B$

每一个epoch会有的总step数:

steps per epoch=⌈BN​⌉

T个epoch总共多少step?

总step数=T×⌈BN​⌉

(⌈x⌉ 表示向上取整,因为最后一个batch通常可能不是整组)


3. 例子

比如你有10000条训练数据,batch_size=32。

  • 每个epoch要:

    3210000​≈312.5

    取整,每个epoch有313个step

  • 如果训练10个epoch,总共:

    10×313=3130 steps

4. 常见用法辨析

  • step常用于
    • 优化器几步更新一次参数
    • 记录loss/输出log/梯度累计(gradient accumulation)
    • 保存checkpoint间隔
  • epoch常用于
    • 设定训练总轮数(如训练5个epoch)
    • 验证或评估模型的节奏(如每个epoch验证一次)

5. 简明口诀总结

  • step:一个batch训练更新一次参数
  • epoch:所有数据训练一遍

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值