我如何从张量流数据集迭代器 return 两次相同的批次?
How can I return the same batch twice from a tensorflow dataset iterator?
我正在转换一些遗留代码以使用数据集 API - 此代码使用 feed_dict
将一批提供给火车操作(实际上是三次),然后重新计算损失以显示 使用同一批次。所以我需要一个 returns 两次(或几次)完全相同的批次的迭代器。不幸的是,我似乎无法找到一种方法来使用 tensorflow 数据集 - 这可能吗?
您可以使用 Dataset.flat_map()
, Dataset.from_tensors()
and Dataset.repeat()
重复 Dataset
的各个元素。例如,重复元素两次:
NUM_REPEATS = 2
dataset = tf.data.Dataset.range(10) # ...or the output of `.batch()`, etc.
# Repeat each element of `dataset` NUM_REPEATS times.
dataset = dataset.flat_map(
lambda x: tf.data.Dataset.from_tensors(x).repeat(NUM_REPEATS))
我正在转换一些遗留代码以使用数据集 API - 此代码使用 feed_dict
将一批提供给火车操作(实际上是三次),然后重新计算损失以显示 使用同一批次。所以我需要一个 returns 两次(或几次)完全相同的批次的迭代器。不幸的是,我似乎无法找到一种方法来使用 tensorflow 数据集 - 这可能吗?
您可以使用 Dataset.flat_map()
, Dataset.from_tensors()
and Dataset.repeat()
重复 Dataset
的各个元素。例如,重复元素两次:
NUM_REPEATS = 2
dataset = tf.data.Dataset.range(10) # ...or the output of `.batch()`, etc.
# Repeat each element of `dataset` NUM_REPEATS times.
dataset = dataset.flat_map(
lambda x: tf.data.Dataset.from_tensors(x).repeat(NUM_REPEATS))