在tensorflow 1.4中,我找到了两个进行批量标准化的函数,它们看起来相同:
答案 0 :(得分:39)
只是要添加到列表中,还有几种方法可以在tensorflow中进行批量规范:
tf.nn.batch_normalization
是一个低级操作。调用者自己负责处理mean
和variance
张量。tf.nn.fused_batch_norm
是另一个低级操作系统,类似于前一个操作系统。不同之处在于它针对4D输入张量进行了优化,这是卷积神经网络中的常见情况。 tf.nn.batch_normalization
接受任何等级大于1的张量。tf.layers.batch_normalization
是以前操作系统的高级包装器。最大的区别在于它负责创建和管理运行均值和方差张量,并在可能的情况下调用快速融合运算。通常,这应该是默认选择。tf.contrib.layers.batch_norm
是批量规范的早期实现,在它逐渐进入核心API之前(即tf.layers
)。建议不要使用它,因为它可能会在将来的版本中删除。tf.nn.batch_norm_with_global_normalization
是另一个弃用的操作。目前,将呼叫委托给tf.nn.batch_normalization
,但将来可能会被拒绝。keras.layers.BatchNormalization
,如果张量流后端调用tf.nn.batch_normalization
。答案 1 :(得分:5)
如doc所示,Multiple markers at this line
- The method subscribe(Consumer<? super String>) in the type Flux<String> is not applicable for the arguments
(elems::add)
- The type List<Integer> does not define add(String) that is applicable here
是一个包含易失性或实验性代码的贡献模块。 tf.contrib
完成后,它将从此模块中删除。现在有两个,以便与历史版本兼容。
因此,建议使用前function
。