当前位置: 首页 > 知识库问答 >
问题:

批量标准化设置训练和测试时间

卜鹏
2023-03-14

最近,我读了很多关于keras批处理规范化的文章,讨论了很多。

根据该网站:设置“tf.layers.batch\u normalization”中的“training=False”,这样训练将获得更好的验证结果

答案是:

如果使用training=True启用批次标准化,则将开始标准化批次本身,并收集每个批次的平均值和方差的移动平均值。现在是棘手的部分。移动平均值是指数移动平均值,tf的默认动量为0.99。图层。batch\u normalization()。平均值从0开始,方差再次从1开始。但由于每次更新应用的权重为(1-动量),因此它将在无穷大范围内渐近达到实际均值和方差。例如,在100步中,它将达到实际值的73.4%,因为0.99100是0.366。如果数值较大,则差异可能很大。

因为我的批量很小,这意味着需要采取更多的步骤,而且训练和测试之间的差异可能很大,这会导致预测时的不良结果。

因此,我必须在调用中设置training=False,从上面的链接可以看出:

当设置training=False时,这意味着批次标准化层将使用其内部存储的平均值和方差来标准化批次,而不是批次自身的平均值和方差。

我知道在测试期间,我们应该使用训练时间的移动均值和移动方差。我知道moving_mean_initializer可以设置。

keras.layers.BatchNormalization(axis=-1, momentum=0.99, epsilon=0.001, center=True, scale=True, beta_initializer='zeros', gamma_initializer='ones', moving_mean_initializer='zeros', moving_variance_initializer='ones', beta_regularizer=None, gamma_regularizer=None, beta_constraint=None, gamma_constraint=None)

我不确定我的观点是否正确:

(1)测试时设置训练=False,训练时设置训练=True

(2) 使用hsitory\u weight=ModelCheckpoint(filepath=“weights.{epoch:02d}.hdf5”,save\u weights\u only=True,save\u best\u only=False)存储归一化权重(包括移动平均值和过程方差gomma和beta)

(3) 使用步骤(2)中的内容初始化

不知道我上面提到的是不是错了,如果是,请纠正我。

我不知道人们通常是如何处理这个问题的?我提议的那个有效吗?

提前感谢!

共有1个答案

东郭淇
2023-03-14

我在训练后做一些测试,

我将所有批次层的移动平均值和移动方差设置为零。

结果很糟糕。

我相信在推理模式下,keras将使用移动均值和移动方差。

以及零件训练标志,无论您将设置为True还是False,这两者之间的唯一区别是

移动方差和移动均值是否会更新。

 类似资料:
  • 本文向大家介绍TensorFlow实现随机训练和批量训练的方法,包括了TensorFlow实现随机训练和批量训练的方法的使用技巧和注意事项,需要的朋友参考一下 TensorFlow更新模型变量。它能一次操作一个数据点,也可以一次操作大量数据。一个训练例子上的操作可能导致比较“古怪”的学习过程,但使用大批量的训练会造成计算成本昂贵。到底选用哪种训练类型对机器学习算法的收敛非常关键。 为了Tensor

  • 为了评估我们的监督模型的泛化能力,我们可以将数据分成训练和测试集: from sklearn.datasets import load_iris iris = load_iris() X, y = iris.data, iris.target 考虑如何正常执行机器学习,训练/测试分割的想法是有道理的。真实世界系统根据他们拥有的数据进行训练,当其他数据进入时(来自客户,传感器或其他来源),经过训

  • 问题内容: 因此,我对此有疑问,一直在寻找答案。所以问题是我何时使用 这之后,我将训练和测试模型(,作为特征,如标签),并得到一些准确度得分。现在我的疑问是,当我必须预测新数据集的标签时会发生什么。说, 因为当我规范化列时,和的值将根据新数据而不是将在其上训练模型的数据来更改。因此,现在将是下面的数据准备步骤之后的数据。 的价值和将关于改变和价值。的数据准备是关于的。 有关不同数字的数据准备如何有

  • 引言 这篇文档会介绍如何用 darknet 训练一个 YOLOv2 目标检测模型,看完这篇文档会发现:模型训练和预测都非常简单,最花时间的精力的往往是训练集的数据预处理。 这里先简单介绍一下 目标分类 (Classification) 和 目标检测 (Detection) 的区别?什么是 YOLO?以及什么是 darknet? 下面这张图很清晰地说明了目标分类: 一张图片作为输入,然后模型就会告诉

  • 标准设置 建立经由基地台与网络联机的网络设定,并保存至PSP™主机。最多可保存10组设定。 网络的设定方法会因您使用之环境而异。以下仅说明标准的设定范例。 1. 确认无线基地台的设定是否已经完成。 确认在PSP™主机的附近,是否设置了已与网络联机的无线基地台。无线基地台的设定通常需使用计算机进行。详情请询问设置无线基地台的人员。 2. 进入(设定)后,选择(网络设定)。 3. 选择[Infrast