- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在实现一个模型,我需要在测试期间更改运行平均值和标准偏差。因此,我假设 nn.functional.batch_norm
将是比 nn.BatchNorm2d
更好的选择
但是,我有成批的图像作为输入,目前不确定如何接收图像。我将如何申请 nn.functional.batch_norm
在成批的 2D 图像上?
我拥有的当前代码是这样的,即使这不正确,我也会发布此代码:
mu = torch.mean(inp[0])
stddev = torch.std(inp[0])
x = nn.functional.batch_norm(inp[0], mu, stddev, training=True, momentum=0.9)
最佳答案
关键是 2D batchnorm 对每个 channel 执行相同的归一化。即如果你有一批形状为 (N, C, H, W) 的数据,那么你的 mu 和 stddev 应该是形状 (C,)。如果您的图像没有 channel 维度,请使用 view
添加一个.
警告:如果您设置 training=True
然后 batch_norm
为争论的批次计算并使用适当的归一化统计数据(这意味着我们不需要自己计算均值和标准差)。您认为 mu 和 stddev 应该是所有训练批次的运行平均值和运行标准。这些张量使用 batch_norm
中的新批次统计信息进行更新。功能。
# inp is shape (N, C, H, W)
n_chans = inp.shape[1]
running_mu = torch.zeros(n_chans) # zeros are fine for first training iter
running_std = torch.ones(n_chans) # ones are fine for first training iter
x = nn.functional.batch_norm(inp, running_mu, running_std, training=True, momentum=0.9)
# running_mu and running_std now have new values
# inp is shape (N, C, H, W)
n_chans = inp.shape[1]
reshaped_inp = inp.permute(1,0,2,3).contiguous().view(n_chans, -1) # shape (C, N*W*H)
mu = reshaped_inp.mean(-1)
stddev = reshaped_inp.std(-1)
x = nn.functional.batch_norm(inp, mu, stddev, training=False)
关于deep-learning - 用于 2D 输入的 Pytorch nn.functional.batch_norm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44887446/
我对 tensorflow 中的 tf.layers.batch_normalization 感到困惑。 我的代码如下: def my_net(x, num_classes, phase_train,
我最近开始使用 Tensorflow,并一直在尽力适应环境。这真是太棒了!然而,使用 tf.contrib.layers.batch_norm 进行批量归一化有点棘手。现在,这是我正在使用的函数: d
我在 MNIST 数据上使用 Tensorflow 的官方批量归一化 (BN) 函数 ( tf.contrib.layers.batch_norm() )。我使用以下代码添加 BN: local4_b
我正在训练以下模型: with slim.arg_scope(inception_arg_scope(is_training=True)): logits_v, endpoints_v = i
对于我的实现,我必须先定义权重,并且不能在 TensorFlow 中使用高级函数,如 tf.layers.batch_normalization 或 tf.layers.dense。所以要进行批量归一
我已经在 tensorflow 中实现了某种神经网络(GAN:生成对抗网络)。 它按预期工作,直到我决定在 generator(z) 方法中添加以下批归一化层(参见下面的完整代码): out = tf
我需要在 while 循环体中添加一个 batch_normalization 层,但当我训练网络时它会崩溃。如果我删除x = tf.layers.batch_normalization(x,trai
我使用 TensorFlow 训练 DNN。我了解到 Batch Normalization 对 DNN 非常有帮助,所以我在 DNN 中使用了它。 我使用“tf.layers.batch_norma
tf.layers.batch_normalization 中“可训练”和“训练”标志的意义是什么?这两者在训练和预测过程中有何不同? 最佳答案 批量归一化有两个阶段: 1. Training:
我目前正在实现一个模型,我需要在测试期间更改运行平均值和标准偏差。因此,我假设 nn.functional.batch_norm将是比 nn.BatchNorm2d 更好的选择 但是,我有成批的图像作
我正在尝试构建一个具有两个损失函数的神经网络,它们像加权和一样组合在一起。第一个简单地计算 mean square error密集层和给定标签的线性输出,但另一个大量使用嵌套 tf.map_fn 。有
我正在将 TensorFlow 代码迁移到 TensorFlow 2.1.0。 原代码如下: conv = tf.layers.conv2d(inputs, out_channels, kernel_
我尝试在 Mnist 数据集上使用函数 tf.contrib.layers.batch_norm 实现 CNN。 当我训练和检查模型时,我发现损失正在减少(很好!),但测试数据集的准确性仍然是随机的(
我正在尝试使用 tensorflow 给出的归一化层。在那function ,有一个字段指定我们是使用 beta 还是 gamma 值。 center: If True, subtract beta.
我有一个 Keras 函数模型(具有卷积层的神经网络),它可以很好地与 tensorflow 配合使用。我可以运行它,我可以适应它。 但是,使用tensorflow gpu时无法建立模型。 这是构建模
以下代码(复制/粘贴可运行)说明了如何使用 tf.layers.batch_normalization。 import tensorflow as tf bn = tf.layers.batch_no
我是一名优秀的程序员,十分优秀!