【发布时间】:2021-05-06 01:54:05
【问题描述】:
我正在通过阅读官方文档来学习 TensorFlow。但被这一行弄糊涂了:
dataset = dataset.shuffle(1000).repeat()
我尝试运行整个项目,它实际上可以工作。但我不明白为什么它不会进入由 dataset.repeat() 引起的无限循环,因为你没有分配计数,所以它会无限重复。
希望有人能帮我解决这个问题吗?
这里是这行代码的链接:https://www.tensorflow.org/tutorials/estimator/premade
部分是“定义特征列”,整个代码块复制如下:
"""An input function for training or evaluating"""
# Convert the inputs to a Dataset.
dataset = tf.data.Dataset.from_tensor_slices((dict(features), labels))
# Shuffle and repeat if you are in training mode.
if training:
dataset = dataset.shuffle(1000).repeat()
return dataset.batch(batch_size)```
【问题讨论】:
-
非常感谢,我明白你的意思了。我仍然想知道这样做有什么好处,而不是像 repeat(500) 或其他那样直接分配计数? (也许通过分配总步骤来限制计数更优雅,因为它允许在预期计算中尽可能多地打乱数据?这只是我的猜测)
-
我把我的 cmets 变成了答案 :)
标签: python-3.x tensorflow dataset