zoukankan      html  css  js  c++  java
  • 深度学习中的batch_size、epoch和iterations

    在进行模型训练的时候经常会遇到这三个参数:batch_size、epoch和iterations,那么它们之间的关系是怎样的呢?

    首先,产生的原因主要是:

    1. 原本的大批量梯度下降训练时,每次要处理完所有数据才更新梯度和损失值,需要的时间太长,计算开销大。

    2. 但是呢,每次计算一个数据,就更新一次损失值和梯度值,虽然速度快,但是不容易收敛,而且不一定找到全局最优解。

    于是,就出现了折中方法 —— 小批量梯度下降策略,所以就有了这些概念。

    batch_size:指的是每批次的大小,即每个iteration送入神经网络的样本量,也就是每个batch包含的样本量。

    iterations:指的是迭代次数,也就是每处理完所有数据一次,需要多少次迭代,每一个batch_size的数据,完成一次训练过程,叫做完成了一次迭代(iteration)

    epoch:一个epoch指的是,将所有数据送入神经网络,完成一次整体的前向计算和反向传播的过程。

    通俗一点说:如果我们有10000个样本,分为4个batch,

    那么batch_size值就是:10000/4=2500;

    iterations值就是:4;

    全体数据被计算一次,就完成了一次epoch。

    ##

    参考:

    https://www.jianshu.com/p/e5076a56946c/

    https://blog.csdn.net/nini_coded/article/details/79250703

  • 相关阅读:
    python面试题目【转1】
    让python和C/C++联姻【转】
    python面试模拟真题讲解
    JavaScript真的要一统江湖了
    WebApp
    Linux服务器之SSH
    web服务之http
    SNMP简单网络管理协议
    Storm,Spark和Samza
    Stream computing
  • 原文地址:https://www.cnblogs.com/qi-yuan-008/p/12518063.html
Copyright © 2011-2022 走看看