我正在使用 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
Run Code Online (Sandbox Code Playgroud)
我可以按照错误消息直接返回数据集,但我不明白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
Run Code Online (Sandbox Code Playgroud)