深度学习中的epochs、batch_size、iterations详解
转载请注明出处:http://blog.csdn.net/gamer_gyt
博主微博:http://weibo.com/234654758
Github:https://github.com/thinkgamer
公众号:搜索与推荐Wiki
个人网站:http://thinkgamer.github.io
深度学习中涉及到很多参数,如果对于一些参数不了解,那么去看任何一个框架都会有难度,在TensorFlow中有一些模型训练的基本参数,这些参数是训练模型的前提,也在一定程度上影响着模型的最终效果。下面主要介绍几个参数。
- batch_size
- iterations
- epochs
batch_size
深度学习的优化算法,其实就是梯度下降,在之前的文章中我们也介绍过梯度下降,这里就不详细说明。梯度下降分为三种:
- 批量梯度下降算法(BGD,Batch gradient descent algorithm)
- 随机梯度下降算法(SGD,Stochastic gradient descent algorithm)
- 小批量梯度下降算法(MBGD,Mini-batch gradient descent algorithm)
批量梯度下降算法,每一次计算都需要遍历全部数据集,更新梯度,计算开销大,花费时间长,不支持在线学习。
随机梯度下降算法,每次随机选取一条数据,求梯度更新参数,这种方法计算速度快,但是收敛性能不太好,可能在最优点附近晃来晃去,hit不到最优点。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。
为了克服两种方法的缺点,现在一般采用的是一种折中手段,mini-batch gradient decent,小批的梯度下降,这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,计算量也不是很大。
tf框架中的batch_size指的就是更新梯度中使用的样本数。当然这里如果把batch_size设置为数据集的长度,就成了批量梯度下降算法,batch_size设置为1就是随机梯度下降算法。
iterations
迭代次数,每次迭代更新一次网络结构的参数。
迭代是重复反馈的动作,神经网络中我们希望通过迭代进行多次的训练以到达所需的目标或结果。
每一次迭代得到的结果都会被作为下一次迭代的初始值。
一个迭代 = 一个(batch_size)数据正向通过(forward)+ 一个(batch_size)数据反向(backward)
前向传播:构建由(x1,x2,x3)得到Y(hwb(x))的表达式
反向传播:基于给定的损失函数,求解参数的过程
epochs
epochs被定义为前向和反向传播中所有批次的单次训练迭代。这意味着1个周期是整个输入数据的单次前向和反向传递。
简单说,epochs指的就是训练过程中数据将被“轮”多少次
例如在某次模型训练过程中,总的样本数是10000,batch_size=100,epochs=10,其对应的伪代码如下:
data =
batch_size = 100
for i in range(epochs):for j in range(int(data_length / batch_size - 1)):x_data = data[begin:end, ]y_data = data[begin:end, ]mode.train(x_data, y_data)begin += batch_sizeend += batch_size
其中iterations = data_length / batch_size
【技术服务】,详情点击查看: https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg
扫一扫 关注微信公众号!号主 专注于搜索和推荐系统,尝试使用算法去更好的服务于用户,包括但不局限于机器学习,深度学习,强化学习,自然语言理解,知识图谱,还不定时分享技术,资料,思考等文章!
深度学习中的epochs、batch_size、iterations详解相关推荐
- Keras深度学习实战(4)——深度学习中常用激活函数和损失函数详解
Keras深度学习实战(4)--深度学习中常用激活函数和损失函数详解 常用激活函数 Sigmoid 激活函数 Tanh 激活函数 ReLU 激活函数 线性激活函数 Softmax 激活函数 损失函数 ...
- 深度学习中的Adam优化算法详解
Adam论文:https://arxiv.org/pdf/1412.6980.pdf (一).什么是Adam算法? Adam(Adaptive momentum)是一种自适应动量的随机优化方法(A m ...
- 深度学习中的epoch,batch_size,iterations含义解析
参考:https://www.jianshu.com/p/e5076a56946c epoch,batch_size,iterations,学习率,这几个都是深度学习训练模型时经常遇到的概念,这几个都 ...
- 机器学习、深度学习中常用的优化算法详解——梯度下降法、牛顿法、共轭梯度法
一.梯度下降法 1.总述: 在机器学习中,基于基本的梯度下降法发展了三种梯度下降方法,分别为随机梯度下降法,批量梯度下降法以及小批量梯度下降法. (1)批量梯度下降法(Batch Gradient D ...
- 深度学习中的循环神经网络LSTM详解
(一).什么是循环神经网络LSTM? LSTM指的是长短期记忆网络(Long Short Term Memory),它是循环神经网络中最知名和成功的扩展.由于循环神经网络有梯度消失和梯度爆炸的问题,学 ...
- 深度学习中的轴/axis/dim全解
在深度学习中,轴,指的就是张量的层级,一般通过参数axis/dim来设定.很多张量的运算.神经网络的构建,都会涉及到轴,但到底取哪个轴,却不是那么容易把握. 下面会针对轴/axis/dim,基于 Py ...
- 【深度学习】ResNet——CNN经典网络模型详解(pytorch实现)
建议大家可以实践下,代码都很详细,有不清楚的地方评论区见~ 1.前言 ResNet(Residual Neural Network)由微软研究院的Kaiming He等四名华人提出,通过使用ResNe ...
- 深度学习(十四)——Softmax详解, 目标检测, RCNN
https://antkillerfarm.github.io/ Softmax详解 首先给出Softmax function的定义: yc=ζ(z)c=ezc∑Cd=1ezd for c=1,-,C ...
- 深度学习-目标检测YOLOV3 YOLOv4原理详解
2.YoloV3核心基础内容 2.1 网络结构可视化 Yolov3是目标检测Yolo系列非常非常经典的算法,不过很多同学拿到Yolov3或者Yolov4的cfg文件时,并不知道如何直观的可视化查看网络 ...
最新文章
- SQL some any all
- Xamarin SQLite教程数据库访问与生成
- python 填充多边形 学习笔记
- hbuilder入门之基本配置(php)
- ExecutorService框架
- c++一元稀疏多项式计算器_武忠祥真题班归纳(更新至一元函数积分未完)
- 【CV】通俗易懂的目标检测 | RCNN, SPPNet, Fast, Faster
- fedora 使用 vnc 远程 fedora 28 主机
- MSE(Media Source Extensions)介绍
- xp系统的计算机设置在哪里,请问在XP系统中怎样设置输入法
- 游戏直播用哪个录屏软件好?
- 计算机专业保研面试备考:计算机算法(必看)
- 显微镜自动聚焦原理是什么_激光共聚焦显微镜系统的原理和应用讲解
- 【Linux】CMAQ实践部署
- 微信聊天记录删了怎么恢复找回来2022 微信聊天记录删了怎么恢复找回来步骤
- 再介绍一篇最新的Contrastive Self-supervised Learning综述论文
- UML用例图之关联关系、包含关系、扩展关系、泛化关系详解
- exlsx中定义名称步骤_excel定义名称详解
- jmeter--上传图片类接口
- NLP(自然语言处理)
热门文章
- 使用awk 统计分析游戏后台日志中的数据
- Android布局优化
- python生成10个随机密码_python题:随机密码生成。编写程序,在26个字母大小写和9个数字组成的列表中随机生成10个8位密码...
- java找不到主类错误的原因_java错误:找不到或无法加载主类的原因与解决方法...
- 从新手到Flutter架构师,一篇就够!这原因我服了
- 【Jupyter常用快捷键】
- 这是我见过最好的Python教程:十分钟带你认识Python
- 身为UI设计师,如何应对失业的恐慌
- Android中文API(129) —— AudioManager
- 自己实现Latex公式识别