我应该直接返回数据集还是应该使用one_shot迭代器?

问题描述 投票:4回答:1

[我正在使用Dataset API构建数据管道,但是当我训练多个GPU并在输入函数中返回dataset.make_one_shot_iterator().get_next()时,我得到了

ValueError: dataset_fn() must return a tf.data.Dataset when using a tf.distribute.Strategy

我可以遵循错误消息并直接返回数据集,但我不了解iterator().get_next()的目的以及它如何在单GPU或多GPU上进行训练。

...

    dataset = dataset.repeat(num_epochs)
    dataset = dataset.batch(batch_size = batch_size)
    dataset = dataset.cache()

    dataset = dataset.prefetch(buffer_size=None)

    return dataset.make_one_shot_iterator().get_next()

return _input_fn
python tensorflow iterator pipeline tensorflow-datasets
1个回答
1
投票

[将tf.data与分配策略一起使用(可以与Keras和tf.Estimator一起使用时,您的输入fn应该返回tf.data.Dataset:]

© www.soinside.com 2019 - 2024. All rights reserved.