问题标签 [batch-normalization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tensorflow - Keras 中的 BatchNormalization 层给出了意想不到的输出值
给定输入值并对它们进行规范化,如果我理解正确[1, 5]
,应该会产生类似的结果,因为[-1, 1]
然而这个最小的例子
产生以下输出:
所以它是[0.79519051, 4.17485714]
而不是[-1, 1]
。
我查看了源代码,这些值似乎被转发到了tf.nn.batch_normalization。这看起来结果应该是我除了,但显然不是。
那么输出值是如何计算的呢?
multidimensional-array - 批量归一化:固定样本还是不同维度的样本?
当我阅读一篇论文“批量标准化:通过减少内部协变量偏移来加速深度网络训练”时,我想到了一些问题。
在论文中,它说:
由于训练数据中的 m 个样本可以估计所有训练数据的均值和方差,因此我们使用 mini-batch 来训练批归一化参数。
我的问题是:
他们是选择 m 个示例然后同时拟合批规范参数,还是为每个输入维度选择不同的 m 个示例集?
例如,训练集由x(i) = (x1,x2,...,xn)
:n维固定批次M = {x(1),x(2),...,x(N)}
,执行拟合所有gamma1~gamman
和beta1~betan
。
对比
对于gamma_i
,beta_i
拣选不同批次M_i = {x(1)_i,...,x(m)_i}
tensorflow - 如何在 tensorflow 中正确使用 tf.layers.batch_normalization()?
我对张量流中的内容感到困惑tf.layers.batch_normalization
。
我的代码如下:
培训似乎运作良好并且val_accuracy
是合理的(比如说0.70
)。问题是:当我尝试使用训练好的模型进行测试(即test
函数)时,如果phase_train
设置为False
,test_accuracy
则非常低(例如,0.000270
),但是当phase_train
设置为True
时,test_accuracy
似乎正确(例如0.69
) .
据我了解,phase_train
应该False
处于测试阶段,对吧?我不确定问题是什么。我误解了批量标准化吗?
python - Keras BatchNormalization 种群参数在 tensorflow 中进行训练时更新
我在带有 Cuda 8.0 和 cuDNN 6 的 Ubuntu 16.04 中使用 Keras 2.0.8 和 Tensorflow 1.3.0。
我在我的模型中使用两个 BatchNormalization 层(keras 层)并使用tensorflow 管道进行训练。
我在这里面临两个问题-
- 即使在将K.learning_phase设置为True之后, BatchNorm 层总体参数(均值和方差)也不会在训练时更新。结果,推理完全失败了。我需要一些关于如何在训练步骤之间手动更新这些参数的建议。
- 其次,使用 tensorflow saver op保存训练好的模型后,当我尝试加载它时,结果无法重现。似乎权重正在改变。有没有办法在保存加载操作中保持权重相同?
keras - keras 中的 BatchNormalization 层在测试阶段是如何实现的?
我最近想在 keras 中使用批量归一化来构建神经网络。正如原始论文中提到的,批量归一化在测试和训练时间的行为不同。我查看了文档:
我没有看到任何参数来判断它是处于训练阶段还是测试阶段,这与 tensorflow 的实现不同:
我想知道在测试阶段如何在 keras 中实现批量标准化层?提前致谢。
machine-learning - 批量归一化而不是输入归一化
我可以在输入层之后立即使用批处理规范化层而不规范化我的数据吗?我可以期望获得类似的效果/性能吗?
在 keras 功能中,它会是这样的:
tensorflow - 恢复模型时使用批量规范?
我在 tensorflow 中恢复模型时使用批处理规范有一个小问题。
以下是我的批量规范,从这里开始:
我训练模型并使用tf.train.Saver()
. 下面是测试代码:
但是预测结果总是很糟糕,就像这样:
一些提示:images_for_predict = mnist.test
并且该self._build_graph
方法有两个参数:batch_size
和is_training
.
任何人都可以帮助我吗?
machine-learning - 如何为layers.batch_normalization 创建一个初始化器?
默认beta_initializer
值为layers.batch_normalization
:tf.zeros_initializer()
。
是否可以创建具有任意值的新初始化程序?
caffe - 如何修改批量归一化层(DeconvNet)以便能够与 caffe 一起运行?
我想在我的数据上运行Deconvnet,但它似乎是为另一个版本的caffe
. 有谁知道如何改变batch_params
?
在 Deconvnet 中的那个
例如,Caffe 提供的一个cifar10
:
一旦我想运行它,首先向我显示以下错误:
更改BN
为后BatchNorm
,显示有关参数的新错误:
有没有人尝试训练 Deconvnet?如果是的话,你能指导我吗?谢谢