python – Tensorflow中的正确批量规范化功能是什么?
作者:互联网
在tensorflow 1.4中,我找到了两个执行批量规范化的函数,它们看起来相同:
> tf.layers.batch_normalization(link)
> tf.contrib.layers.batch_norm(link)
我应该使用哪种功能?哪一个更稳定?
解决方法:
只是要添加到列表中,还有几种方法可以在tensorflow中进行批处理规范:
> tf.nn.batch_normalization
是一个低级操作.调用者负责处理均值和方差张量本身.
> 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层keras.layers.BatchNormalization
,在张量流后端的情况下调用tf.nn.batch_normalization.
标签:python,tensorflow,neural-network,deep-learning,batch-normalization 来源: https://codeday.me/bug/20190925/1817548.html