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


Python tf.distribute.OneDeviceStrategy.distribute_datasets_from_function用法及代码示例


用法

distribute_datasets_from_function(
    dataset_fn, options=None
)

参数

返回

  • 一个“分布式Dataset”,调用者可以像常规数据集一样对其进行迭代。

分发由对 dataset_fn 的调用创建的 tf.data.Dataset 实例。

dataset_fn 将为策略中的每个工作人员调用一次。在这种情况下,我们只有一个工人和一个设备,所以 dataset_fn 被调用一次。

dataset_fn 应该采用 tf.distribute.InputContext 实例,其中可以访问有关批处理和输入复制的信息:

def dataset_fn(input_context):
  batch_size = input_context.get_per_replica_batch_size(global_batch_size)
  d = tf.data.Dataset.from_tensors([[1.]]).repeat().batch(batch_size)
  return d.shard(
      input_context.num_input_pipelines, input_context.input_pipeline_id)

inputs = strategy.distribute_datasets_from_function(dataset_fn)

for batch in inputs:
  replica_results = strategy.run(replica_fn, args=(batch,))

重要的:dataset_fn 返回的 tf.data.Dataset 应该具有 per-replica 批量大小,这与使用全局批量大小的 experimental_distribute_dataset 不同。这可以使用 input_context.get_per_replica_batch_size 来计算。

相关用法


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