2024-05-05 01:00:51 发布
网友
TensorFlow似乎实现了至少3个版本的批处理规范化:
这些都有不同的参数和文档。在
这些有什么区别,我应该用哪一个?在
它们实际上非常不同。在
nn.batch_normalization
layers.batch_normalization
这与nn.conv2d和{}之间的区别类似。在
nn.conv2d
至于contrib版本,我不能肯定,但在我看来,它像是一个实验版本,它有一些“常规”layers中没有的额外参数。在
contrib
layers
都是基于同一篇论文:http://arxiv.org/abs/1502.03167 所以他们应该做同样的事情。在
有些函数会在代码中移动,但是保留旧版本以保持向后兼容性,最终会得到多个版本。在
我建议您使用最简单的方法来完成您的项目(即tf.nn.batch_标准化). 如果您需要未提供的功能/参数,请选择适合您的功能/参数。在
注: tf.contrib公司.*不保证保持向后兼容(api可能在将来的版本中更改)。在
它们实际上非常不同。在
nn.batch_normalization
执行基本操作(即简单的规范化)layers.batch_normalization
是一个batchnorm“层”,也就是说,它负责设置可训练的参数等。最后,它是nn.batch_normalization
的包装器。很可能这是你想要使用的,除非你想自己设置变量等。在这与}之间的区别类似。在
nn.conv2d
和{至于
contrib
版本,我不能肯定,但在我看来,它像是一个实验版本,它有一些“常规”layers
中没有的额外参数。在都是基于同一篇论文:http://arxiv.org/abs/1502.03167 所以他们应该做同样的事情。在
有些函数会在代码中移动,但是保留旧版本以保持向后兼容性,最终会得到多个版本。在
我建议您使用最简单的方法来完成您的项目(即tf.nn.batch_标准化). 如果您需要未提供的功能/参数,请选择适合您的功能/参数。在
注: tf.contrib公司.*不保证保持向后兼容(api可能在将来的版本中更改)。在
相关问题 更多 >
编程相关推荐