预测张量流与重复的使用混淆
forecasting tensorflow confused with usage of repeat
我遇到了这个 notebook that covers forecasting. I got it through this article。
我对下面的第 2 和第 4 行感到困惑
train_data = tf.data.Dataset.from_tensor_slices((x_train, y_train))
train_data = train_data.cache().shuffle(buffer_size).batch(batch_size).repeat()
val_data = tf.data.Dataset.from_tensor_slices((x_vali, y_vali))
val_data = val_data.batch(batch_size).repeat()
我知道我们正在尝试打乱我们的数据,因为我们不想按串行顺序将数据提供给我们的模型。在进一步阅读时,我意识到最好让 buffer_size
与数据集的大小相同。但我不确定 repeat
在这种情况下在做什么。有人可以解释这里正在做什么以及 repeat
的功能是什么?
我也看了这个,也看到了下面的文字,但还是不清楚。
The following methods in tf.Dataset :
repeat( count=0 ) The method repeats the dataset count number of times.
shuffle( buffer_size, seed=None, reshuffle_each_iteration=None) The method shuffles the samples in the dataset. The buffer_size is the number of samples which are randomized and returned as tf.Dataset.
batch(batch_size,drop_remainder=False) Creates batches of the dataset with batch size given as batch_size which is also the length of the batches.
不向计数参数传递任何内容的重复调用使该数据集无限重复。
在 python 术语中,数据集是 python 可迭代对象的子类。如果你有一个tf.data.Dataset
类型的对象ds
,那么你可以执行iter(ds)
。如果数据集是由 repeat()
生成的,那么它永远不会 运行 出项目,即它永远不会抛出 StopIteration
异常。
在您引用的笔记本中,对 tf.keras.Model.fit() 的调用将参数 100
传递给参数 steps_per_epoch
。这意味着数据集应该无限重复,并且 Keras 将暂停训练以每 100 步 运行 验证。
tldr:留在里面。
我遇到了这个 notebook that covers forecasting. I got it through this article。
我对下面的第 2 和第 4 行感到困惑
train_data = tf.data.Dataset.from_tensor_slices((x_train, y_train))
train_data = train_data.cache().shuffle(buffer_size).batch(batch_size).repeat()
val_data = tf.data.Dataset.from_tensor_slices((x_vali, y_vali))
val_data = val_data.batch(batch_size).repeat()
我知道我们正在尝试打乱我们的数据,因为我们不想按串行顺序将数据提供给我们的模型。在进一步阅读时,我意识到最好让 buffer_size
与数据集的大小相同。但我不确定 repeat
在这种情况下在做什么。有人可以解释这里正在做什么以及 repeat
的功能是什么?
我也看了这个
The following methods in tf.Dataset :
repeat( count=0 ) The method repeats the dataset count number of times.
shuffle( buffer_size, seed=None, reshuffle_each_iteration=None) The method shuffles the samples in the dataset. The buffer_size is the number of samples which are randomized and returned as tf.Dataset.
batch(batch_size,drop_remainder=False) Creates batches of the dataset with batch size given as batch_size which is also the length of the batches.
不向计数参数传递任何内容的重复调用使该数据集无限重复。
在 python 术语中,数据集是 python 可迭代对象的子类。如果你有一个tf.data.Dataset
类型的对象ds
,那么你可以执行iter(ds)
。如果数据集是由 repeat()
生成的,那么它永远不会 运行 出项目,即它永远不会抛出 StopIteration
异常。
在您引用的笔记本中,对 tf.keras.Model.fit() 的调用将参数 100
传递给参数 steps_per_epoch
。这意味着数据集应该无限重复,并且 Keras 将暂停训练以每 100 步 运行 验证。
tldr:留在里面。