当前位置: 首页 > news >正文

做招聘网站要多久广州网站推广平台

做招聘网站要多久,广州网站推广平台,三门网站建设,黑镜主题 wordpress训练网络之前有很多参数要设置,不了解各个参数的含义就没法合理地设置参数值,训练效果也会因此大受影响。本篇博客记录一下网络训练里的Batch Size、Iterations和Epochs怎么理解。 一、引言 首先要了解一下为什么会出现Batch Size这个概念。深度学习算…

训练网络之前有很多参数要设置,不了解各个参数的含义就没法合理地设置参数值,训练效果也会因此大受影响。本篇博客记录一下网络训练里的Batch Size、Iterations和Epochs怎么理解。

一、引言

首先要了解一下为什么会出现Batch Size这个概念。深度学习算法是迭代的,也就是会多次使用算法获取结果,以得到最优化的结果。每次迭代更新网络参数有两种方式,也是两种极端:

第一种是Batch Gradient Descent,批梯度下降,即把所有数据一次性输入进网络,把数据集里的所有样本都看一遍,然后计算一次损失函数并更新参数。这种方式计算量开销很大,速度也很慢,不支持在线学习。

第二种是Stochastic Gradient Descent,随机梯度下降,即把每次只把一个数据输入进网络,每看一个数据就算一下损失函数并更新参数。这种方式虽然速度比较快,但是收敛性能不好,可能会在最优点附近震荡,两次参数的更新也有可能互相抵消掉。

可见,这两种方式都有问题,所以现在一般都是采用两种方式的折衷,Mini-Batch Gradient Decent,小批梯度下降。就是把数据进行切片,划分为若干个批,按批来更新参数。这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。并且由于批的样本数与整个数据集相比小了很多,计算量也不是很大。

二、Batch Size

所谓的batch_size,就是每次训练所选取的样本数,通俗点讲就是一个 batch中的样本总数,一次喂进网络的样本数。batch_size的选择会影响梯度下降的方向。

在合理范围内增大batch_size有以下几个好处:

  1. 内存利用率高,大矩阵乘法的并行化效率提高;
  2. 跑完全部数据所需的迭代次数少,对于相同数据量的处理速度可以进一步加快;
  3. 在一定范围内,一般来说batch_size越大,其确定的下降方向越准,引起的训练震荡越小。

但也不能盲目增大,否则会有以下几个坏处:

  1. 内存容量可能撑不住,报错RuntimeError:CUDA out of memory;
  2. 跑完全部数据集所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢;
  3. 当batch_size增大到一定程度时,其确定的下降方向已经基本不再变化了。

三、Iterations

所谓的iterations,就是训练完全部数据需要迭代的次数,通俗点讲一个iteration就是使用batch_size个样本把网络训练一次,iterations就是整个数据集被划分成的批次数目,数值上等于data_size/batch_size。

把全部的样本数据,按照batch_size进行切片,划分成iterations块。每个iteration结束后都会更新一次网络结构的参数,每一次迭代得到的结果都会被作为下一次迭代的初始值。

一个iteration=一个batch_size的数据进行一次forward propagation和一次backward propagation。

四、Epochs

所谓的epochs,就是前向传播和反向传播过程中所有批次的训练迭代次数,一个epoch就是整个数据集的一次前向传播和反向传播,通俗点讲,epochs指的就是训练过程中全部数据将被送入网络训练多少次。

为什么要使用多个epoch进行训练呢?因为在神经网络中传递完整的数据集一次是不够的,我们需要将完整的数据集在同样的神经网络中传递多次。我们使用的是有限的数据集,仅仅更新权重一次或者说使用一个epoch是不够的。

如果epochs太小,网络有可能发生欠拟合;如果epochs太大,则有可能发生过拟合。具体怎么选择要根据实验结果去判断和选择,对于不同数据集选取的epochs是不一样的。

五、举个例子

假设有1024个训练样本,batch_size=8,epochs=10,那么:每个epoch会训练1024/8=128个iteration,全部1024个训练样本会被这样训练10次,所以一共会有1280个iteration,发生1280次前向传播和反向传播。注意,由于Batch Normalization层的存在,batch_size一般设置为2的倍数,并且不能为1

总结一下:

  1. Batch使用训练集中的一小部分样本对模型权重进行一次反向传播的参数更新,这一小部分样本被称为“一批数据”;
  2. Iteration是使用一个Batch数据对模型进行一次参数更新的过程,被称为“一次训练”;
  3. Epoch使用训练集的全部数据对模型进行一次完整训练,被称为“一代训练”。
http://www.yayakq.cn/news/380837/

相关文章:

  • 企业网站优化关键词网站优点缺点
  • 贵阳模板建站定制制作微信网站模板
  • 昆明制作手机网站苏州建设监督网站
  • 如何自己建设淘宝网站企业解决方案中的关键点
  • 网站制作前景怎么样国家工商局官网首页登录入口
  • 能做门户网站带论坛功能的cms上蔡县住房和城乡建设局网站
  • 湖北做网站平台哪家好中国企业网查询系统官网
  • 学网站开发多少钱企业网络规划和设计方案
  • 网站直接访问品牌女装
  • 深圳市福田建设集团徐州做网站优化
  • 网站建设都需要哪些工具或软件网站推广一般在哪个网做
  • 常德做网站建设的公司某俄文网站
  • 淄博网站制作公司定制网站建设的核心是什么
  • 成都营销型网站自己如何免费做网站
  • 怎么做视频平台网站做海报那个网站好
  • 连云港网站建设服务设计网站公司 讲湖南岚鸿
  • 包头网站建设公司哪家好北京网络营销培训
  • 百度免费网站申请怀化政法网站
  • 网站建设推广费怎么做账兼职做ppt是哪个网站
  • 襄阳专业做网站wordpress主题 设定
  • 珠宝网站建商台北做的好的企业网站
  • 江苏林润建设工程有限公司网站山西住房和城乡建设部网站首页
  • 网站如何制作优化网站关键词排名
  • 网站建设公司怀化网站的建设背景
  • 网站如何投放广告临沂建设局官方网站
  • 手机网站产品展示模板wordpress用户文档
  • 网站建设没有图片淮安做网站.哪家网络公司好?
  • 网站权重转移做排名网站建设优化兼职在家
  • 郑州网站建设喝彩科技网络水果有哪些网站可以做
  • 建设旅游网站数据库设计企业融资风险及其防范措施