当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.distribute.experimental.TPUStrategy用法及代码示例


TPU 和 TPU Pod 的同步训练。

继承自:Strategy

用法

tf.distribute.experimental.TPUStrategy(
    tpu_cluster_resolver=None, device_assignment=None
)

参数

  • tpu_cluster_resolver 一个 tf.distribute.cluster_resolver.TPUClusterResolver,它提供有关 TPU 集群的信息。
  • device_assignment 可选 tf.tpu.experimental.DeviceAssignment 指定副本在 TPU 集群上的位置。

属性

要构造 TPUStrategy 对象,您需要运行如下初始化代码:

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='')
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.experimental.TPUStrategy(resolver)

在使用分发策略时,在策略范围内创建的变量将在所有副本中复制,并且可以使用 all-reduce 算法保持同步。

要在 TPU 上运行 TF2 程序,您可以将 tf.keras 中的 .compile.fit API 与 TPUStrategy 一起使用,或者通过直接调用 strategy.run 来编写自己的自定义训练循环。请注意,TPUStrategy 不支持纯粹的 Eager 执行,因此请确保传递给 strategy.run 的函数是 tf.functionstrategy.run 如果启用了 Eager 行为,则在 tf.function 内调用。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.distribute.experimental.TPUStrategy。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。