batch-normalization相关内容

BatchNorm 动量约定 PyTorch

是 batchnorm 动量约定(默认=0.1) 像在其他库中一样正确,例如Tensorflow 默认情况下似乎通常是 0.9 或 0.99?或者,也许我们只是使用了不同的约定? 解决方案 貌似pytorch中的参数化约定和tensorflow中的不同,所以pytorch中的0.1相当于tensorflow中的0.9. 更准确地说: 在张量流中: running_mean = ..

添加批量标准化会降低性能

我正在使用 PyTorch 来实现基于骨架的动作识别的分类网络.该模型由三个卷积层和两个全连接层组成.这个基本模型在 NTU-RGB+D 数据集中给了我大约 70% 的准确率.我想了解更多关于批量归一化的知识,所以我为除最后一层之外的所有层添加了一个批量归一化.令我惊讶的是,评估准确率下降到了 60% 而不是增加,但训练准确率却从 80% 增加到了 90%.谁能说我做错了什么?或者添加批量标准化不 ..
发布时间:2022-01-06 19:22:58 Python

设置“training=False"“tf.layers.batch_normalization"什么时候训练会得到更好的验证结果

我使用 TensorFlow 来训练 DNN.我了解到 Batch Normalization 对 DNN 很有帮助,所以我在 DNN 中使用了它. 我使用“tf.layers.batch_normalization"并按照API文档的说明构建网络:训练时,设置其参数“training=True",当验证时,设置“training=False".并添加 tf.get_collection(t ..
发布时间:2021-12-27 17:18:21 Python

哪些 PyTorch 模块受 model.eval() 和 model.train() 影响?

model.eval() 方法修改某些模块(层),这些模块(层)在训练和推理期间需要以不同的方式表现.文档中列出了一些示例: 这仅对某些模块有 [an] 影响.如果它们受到影响,请参阅特定模块的文档以了解其在培训/评估模式下的行为的详细信息,例如Dropout、BatchNorm 等 是否有一份详细的清单,列出了哪些模块受到影响? 解决方案 除了 @iacob 提供的信息: ..

Tensorflow 中正确的批量归一化功能是什么?

在 tensorflow 1.4 中,我发现了两个进行批量归一化的函数,它们看起来一样: tf.layers.batch_normalization(链接) tf.contrib.layers.batch_norm (链接) 我应该使用哪个函数?哪个更稳定? 解决方案 只是添加到列表中,还有几种方法可以在 tensorflow 中进行批处理规范: tf.nn.batch ..

TensorFlow 版本 2 和 BatchNorm 折叠中的量化感知训练

我想知道在 Tensorflow 2 中量化感知训练期间模拟 BatchNorm 折叠的当前可用选项是什么.Tensorflow 1 具有 tf.contrib.quantize.create_training_graph 函数,该函数将 FakeQuantization 层插入到图并负责模拟批量归一化折叠(根据此白皮书). Tensorflow 2 有一个教程,介绍如何在他们的最近采用了 ..

如何在 Tensorflow 中使用 SWA 实现 Batch Norm?

我在 Tensorflow 2.2 中使用随机权重平均 (SWA) 和批量归一化层.对于 Batch Norm,我使用 tf.keras.layers.BatchNormalization.对于 SWA,我使用我自己的代码来平均权重(我在 tfa.optimizers.SWA 出现之前编写了我的代码).我在多个来源中读到,如果使用批处理规范和 SWA,我们必须运行前向传递以使某些数据(激活权重和/ ..
发布时间:2021-06-07 19:57:57 Python

你如何去规范化?

一旦您对数据进行了标准化处理,使值介于 0-1 之间,您如何对其进行去标准化处理,以便解释结果? 因此,当您规范化数据并将其提供给您的网络并获得规范化数据的输出时.如何逆归一化得到原始数据? 解决方案 如果您有一些数据 d,您可以通过执行(类似的事情)将其标准化为 0-1 min_d = np.min(d)max_d = np.max(d)normalized_d = (d - m ..
发布时间:2021-06-07 19:56:30 其他开发

哪些PyTorch模块受model.eval()和model.train()影响?

model.eval()方法修改某些模块(层),这些模块在训练和推理过程中必须表现出不同的行为.文档: 这仅对某些模块有[an]作用.请参阅特定模块的文档,以了解其在培训/评估模式下的行为的详细信息(如果受到影响),例如 Dropout , BatchNorm 等 是否列出了受影响的模块的详尽列表? 解决方案 除了 @iacob 提供的信息之外: 基类模块条件 其他规范 ..

Keras Tensorfolow的BatchNormalization层中的attrainbuts“可训练"和"training"之间有什么区别?

根据tensorflow的官方文件: 关于在`BatchNormalization层上设置layer.trainable = False: 设置layer.trainable = False的含义是冻结该层,即其内部状态在训练期间不会更改:其可训练权重不会在fit()或train_on_batch()期间更新,并且其状态更新不会运行. 通常,这并不一定意味着该层以推理模式运行(通常由调用 ..
发布时间:2021-05-28 19:07:23 Python

添加批次归一化会降低性能

我正在使用PyTorch来实现用于基于骨骼的动作识别的分类网络.该模型由三个卷积层和两个完全连接的层组成.这个基本模型在NTU-RGB + D数据集中为我提供了大约70%的精度.我想了解有关批处理规范化的更多信息,所以我为除最后一层之外的所有层添加了批处理规范化.令我惊讶的是,评估准确性下降到60%而不是增加,但是训练准确性从80%增加到90%.谁能说我在做什么错?或添加批次归一化无需增加准确性? ..
发布时间:2021-04-29 20:47:53 Python

BatchNormalization结果差

我一直在尝试实施 DCGan ,这是该手册的纸,并被下面两个阻止问题几乎持续了2个星期.任何建议,将不胜感激.谢谢. 问题1: DCGAN论文建议生成器和鉴别器都使用BN(批量归一化).但是,使用BN不能获得比没有BN更好的结果. 我复制了我使用的DCGAN模型,该模型与DCGAN纸完全相同.我不认为这是由于过度拟合造成的.因为(1)它始终显示与初始噪声图像相同的噪声,并且似乎从 ..

微调时,为什么必须冻结“批处理规范化"层的所有内部状态

以下内容来自Keras教程 此行为已在TensorFlow 2.0中引入,以使layer.trainable = False能够在convnet微调用例中产生最普遍预期的行为. 为什么在微调卷积神经网络时应该冻结层?是因为tensorflow keras中的某些机制还是因为批处理规范化算法?我自己进行了一次实验,发现如果可训练性未设置为假,则该模型往往会灾难性地忘记以前学到的东西,并在 ..
发布时间:2021-02-14 20:42:07 Python

Pytorch Batchnorm层与Keras Batchnorm不同

我试图将经过训练的BN权重从pytorch模型复制到等效的Keras模型中,但是我一直得到不同的输出. 我阅读了Keras和Pytorch BN文档,我认为区别在于它们计算“均值"和"var"的方式. 火炬: 均值和标准差是在 迷你批次 来源: Pytorch BatchNorm 因此,它们是样本的平均值. 凯拉斯: axis:整数,应归一化的轴(通常是 ..
发布时间:2021-02-14 20:39:56 Python

BatchNorm动量惯例PyTorch

是 batchnorm动量惯例(默认为0.1)与其他库一样正确,例如Tensorflow似乎默认情况下通常为0.9或0.99?还是我们只是使用了不同的约定? 解决方案 似乎pytorch中的参数化约定与tensorflow中的不同,因此pytorch中的0.1等效于tensorflow中的0.9. 更准确地说: 在Tensorflow中: running_mean = d ..