如何为TensorFlow多GPU代码实现批准层



我已经创建了一个多GPU网络作为cifar10_multigpu

在推理实施中,他们说:

我们使用tf.get_variable()实例化所有变量 tf.variable()为了在多个GPU上共享变量 训练运行。 如果我们只在单个GPU上运行此模型,我们可以简化此模型 功能 通过用tf.variable()。

替换所有实例()

所以我将所有Conv2D层都是一个示例,但是BatchNorm层呢?我如何自己实施?

在这种情况下,我可以使用tensorflow.contrib.slim.batch_norm吗?该示例不包含有关批处理标准层的任何建议。

只需使用tf.layers.batch_normalization即可。它还通过tf.get_variable()创建变量,因此也可以共享。

此外,它与tf.layers.conv*功能无缝工作。

update tf.nn.batch_normalization也很好。这是一个更低级的功能,需要您自己管理meanvariance张量。实际上,tf.layers.batch_normalizationtf.nn.*函数上的包装器,其中还包括tf.nn.fused_batch_norm(更快的熔融版本)。

最新更新