gpt4 book ai didi

python - Keras/Tensorflow : Predict Using tf. 数据.数据集 API

转载 作者:行者123 更新时间:2023-12-02 09:00:27 26 4
gpt4 key购买 nike

我使用带有 Tensorflow 后端的 Keras 来构建此问题的模型:https://www.kaggle.com/cfpb/us-consumer-finance-complaints (只是练习)。

我使用 tf.data.Dataset API 训练我的 Keras 模型。现在,我有一个 Pandas DataFrame,df_testing,其列是 complaint(字符串)和 label(也是字符串)。我想对这些新样本进行预测。我创建一个 tf.data.Dataset 对象,执行预处理,创建迭代器,然后在模型上调用预测:

data = df_testing["complaint"].values
labels = df_testing["label"].values

dataset = tf.data.Dataset.from_tensor_slices((data))
dataset = dataset.map(lambda x: ({'reviews': x}))
dataset = dataset.batch(self.batch_size).repeat()
dataset = dataset.map(lambda x: self.preprocess_text(x, self.data_table))
dataset = dataset.map(lambda x: x['reviews'])
dataset = dataset.make_initializable_iterator()

我的训练使用了 tf.data.Dataset,其中每个元素的形式为 ({'reviews': "movie was Great"}, "positive")所以我在这里模仿它进行预测。另外,我的预处理只是将字符串转换为整数的Tensor

当我打电话时:

preds = model.predict(dataset)

但我被告知我的 predict 调用失败:

ValueError: When using iterators as input to a model, you should specify the `steps` argument.

所以我将此调用修改为:

preds = model.predict(dataset, steps=3)

但现在我回来了:

ValueError: Please provide data as a list or tuple of 2 elements  - input and target pair. Received Tensor("IteratorGetNext_2:0", shape=(?, 100), dtype=int32)

我在这里做错了什么?预测时我不必提供 2 个元素的元组(我不需要标签)。

感谢您提供的任何帮助!

最佳答案

您使用的是哪个版本的 Keras?我在代码库中找不到特定的错误消息,但我想我找到了它曾经所在的位置。

以下是我认为与您正在运行的版本接近的代码版本中的错误:commit

这是该错误的更新版本:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/keras/engine/training_eager.py#L464

输入验证的条件已更改(在最新版本中,您的输入将被接受),但相关的是错误消息更加清晰:

raise ValueError(
'Please provide data as a list or tuple of 1, 2, or 3 elements '
' - `(input)`, or `(input, target)`, or `(input, target,'
'sample_weights)`. Received %s. We do not use the `target` or'
'`sample_weights` value here.' % inputs.output_shapes)

预测函数中从未使用目标值,因此可以是任何值。查看函数 next_element[1] 的其余部分,该函数从未使用过。

[TLDR] 使用您当前的版本,向数据添加虚拟目标值,或更新您的 Keras。

关于python - Keras/Tensorflow : Predict Using tf. 数据.数据集 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53384168/

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