gpt4 book ai didi

python - Tensorflow 2.0 : Can I change the settings on a Tf. data.Dataset——特别是 `repeat()` 功能?

转载 作者:行者123 更新时间:2023-12-01 06:46:59 26 4
gpt4 key购买 nike

我有一个从一些 pandas 数据创建的 tensorflow 2.0 tf.data.Dataset 。现在我想更改数据集的设置,但它似乎不允许我这样做。举个例子,我想将数据集上的 .repeat() 参数从无限重复更改为仅重复 1 次。但是当我尝试进行此更改时,数据集不接受更改。

这是一个包含一些代码的示例。该函数取自 TF 网站上的 Tensorflow 教程之一。

URL = 'https://storage.googleapis.com/applied-dl/heart.csv'
df = pd.read_csv(URL)

def df_to_dataset(dataframe, shuffle=True, batch_size=32):
dataframe = dataframe.copy()
labels = dataframe.pop('target')
ds = tf.data.Dataset.from_tensor_slices((dict(dataframe), labels))
if shuffle:
ds = ds.shuffle(buffer_size=len(dataframe))
ds = ds.batch(batch_size).repeat() # <-- NOTICE THE INFINITE REPEAT
return ds

train_ds = df_to_dataset(df)
train_ds.repeat(1) # <-- TRYING TO CHANGE TO A FIXED NUMBER OF REPETITIONS

因此,我尝试更改数据集上的重复次数,但这会导致数据集仍然永远重复。就像如果我将数据集设置为无限重复,然后重复 1 次,我最终会得到一个无限重复的数据集,但重复 1 次——这与无限重复相同。

我想对于数据集的其他特征(例如批处理数等)可能也存在相同的行为。

有没有办法重置数据集的行为?

最佳答案

我认为这是预期的行为。一旦它是一个无限重复的数据集,再重复一次仍然会产生一个具有无限示例的数据集。

您可能可以执行dataset.take(count),其中count是等于原始示例的批处理数的数字,前提是您有良好的洗牌能力您的数据。

关于python - Tensorflow 2.0 : Can I change the settings on a Tf. data.Dataset——特别是 `repeat()` 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59182162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com