百科问答小站 logo
百科问答小站 font logo



batchsize=1时可以用BN吗? 第1页

  

user avatar   jiang-xue-feng-28-14 网友的相关建议: 
      

个人认为,题主设置Batchsize=1可能是受限于计算资源只能设置Batchsize=1进行训练,或计算资源够,可以用大一点的Batchsize训练,但算法流程或者实例推理inference中有必须设置batchsize=1进行forward的需求,但往往Batchnorm层会写到模型中,大Batchsize训练时当然没问题,但带有BatchNorm进行单例forward的时候会出现error的情况。

前者就不建议使用BN了,没有什么用处(原因在后面),这里补充一下后者的处理方法,即BatchNorm(BN)怎样解决训练和推理时batch size不同的问题?

BatchNorm是在每个minibatch的维度上计算每个相同通道上的均值和方差,调整模型的一层输出时的分布,让模型在经过forward和backward优化时,取得更平滑一些的解。通常情况下,训练阶段的batchsize会设置较大,而有些时候进行推理inference时或者根据算法需要,batchsize会被我们考虑设置为1。这样的话,不同的minibatch训练得到不同的标准化,均值和方差这样的统计参数,而推理时只有一个样本,在只有1个向量的数据组上进行标准化后,成了一个全0向量,导致模型出现BUG。为了解决这个问题,不改变训练时的BatchNorm计算方式,仅仅改变推理时计算均值和方差方法,一种方法是如果在用于训练的数据集和要用于推理的数据集分布基本上差不多的时候,可以用训练集来近似对总体均值μ和总体标准差σ的估计。也可以考虑在batchsize=1的时候,进行推理时记得把model.eval()设置上,model.eval()时,网络模型中不启用 BatchNormalization 和 Dropout。




  

相关话题

  现代人工神经网络是不是一个死胡同?这个技术是不是骗人的? 
  如何看待谷歌研究人员提出的卷积正则化方法「DropBlock」? 
  计算机视觉中video understanding领域有什么研究方向和比较重要的成果? 
  ICLR 2022有哪些值得关注的投稿? 
  NLP文本匹配问题的本质是不是 对于要预测的句子,遍历候选句子 从训练数据集里寻找最相似的pair? 
  如何评价 On Unifying Deep Generative Models 这篇 paper? 
  吴恩达为什么离开谷歌? 
  深度学习和强化学习之间的差别有多大? 
  如何看待 Google 既可以作 Inference,又可以作 Training 的新一代 TPU? 
  图片上训的模型,怎么迁移视频上呢? 

前一个讨论
如何评价斗鱼主播 yyf 举办的高校杯 dota2 比赛?
下一个讨论
如何看待中国企业“霸榜”全球隐私技术专利排行榜,目前国内的隐私计算做的怎么样?





© 2025-01-31 - tinynew.org. All Rights Reserved.
© 2025-01-31 - tinynew.org. 保留所有权利