gpt4 book ai didi

python - model.fit(...) 和 "Failed to convert a NumPy array to a Tensor"

转载 作者:行者123 更新时间:2023-12-04 15:35:42 24 4
gpt4 key购买 nike

我正在使用 TensorFlow 2.0 进行文本分类。

数据的结构大致如下:

第一种方法:

x: List[List[int]] # list of sentences consisting of a list of word IDs for each word in the sentence
y: List[int] # binary truth indicator

但是,当调用 model.fit(...) 时我收到以下错误消息:

Failed to find data adapter that can handle input: (<class 'list'> containing values of types {'(<class \'list\'> containing values of types {"<class \'int\'>"})', "(<class 'list'> containing values of types set())"}), <class 'numpy.ndarray'>

尽管没有使用 set任何地方。

第二种方法:

我尝试对内部列表使用 numpy 数组,如下所示:

x: List[np.ndarray[np.int32]]
y: np.ndarray[np.int32]

但我收到以下错误:

Input arrays should have the same number of samples as target arrays. Found 32 input samples and 479 target samples.

第三种方法:

这促使我将数据结构更改为:

x: np.ndarray[np.ndarray[np.int32]]
y: np.ndarray[np.int32]

这导致了以下错误:

Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).

第四种方法:

努力,

x: np.ndarray[List[int]]
y: np.ndarray[int]

导致以下类似错误消息:

Failed to convert a NumPy array to a Tensor (Unsupported object type list).

TLDR;

所以问题是:发生了什么事?为什么不会 model.fit(...)接受这些参数?

请看下面我的回答。

最佳答案

我记录这个困惑的原因是根本问题与错误消息无关。

潜在的问题是输入数据 (x) 需要填充。

句子自然有不同的长度。 TensorFlow 的 model.fit(...) 不喜欢这样。为了让它发挥得更好,我需要填充句子以确保句子列表中每个句子包含的单词数量相同。 (我只是用零填充它们。)

如果您填充输入,第三种方法第四种方法都应该有效。

关于python - model.fit(...) 和 "Failed to convert a NumPy array to a Tensor",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59856217/

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