我正在研究tensorflow。关于tensorflow.data.Dataset中的repeat函数,如果repeat函数中没有参数,repeat(),张量应该无限重复。但是,当不带参数的repeat函数与循环语句下的批处理函数结合使用时,它会创建一个没有无限重复的结果,如下所示。我不能理解这个过程。你能用下面的例子解释一下repeat函数吗?谢谢!
for count_batch in ds_counter.repeat().batch(10).take(10):
print(count_batch.numpy())
[0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 0 1 2 3 4]
[ 5 6 7 8 9 10 11 12 13 14]
[15 16 17 18 19 20 21 22 23 24]
[0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 0 1 2 3 4]
[ 5 6 7 8 9 10 11 12 13 14]
[15 16 17 18 19 20 21 22 23 24]发布于 2020-05-25 04:58:41
由于您使用.take(10)作为最后一个链接方法,因此结果数据集仅限于10个样本。这里的单个sample将是单个批次中的所有元素。有10个批次的无限重复,其中最初的10个批次是使用.take(10)。将您的代码更改为下面的代码应该会得到预期的结果。
ds_counter = tf.data.Dataset.range(25)
for count_batch in ds_counter.repeat().batch(10):
print(count_batch.numpy())https://stackoverflow.com/questions/61927053
复制相似问题