Python 模型拟合(…)和;无法将NumPy数组转换为张量;

Python 模型拟合(…)和;无法将NumPy数组转换为张量;,python,numpy,tensorflow,tensorflow2.0,Python,Numpy,Tensorflow,Tensorflow2.0,我正在使用TensorFlow 2.0进行文本分类 数据结构大致如下所示: 第一种方法: x:List[List[int]#由句子中每个单词的单词ID列表组成的句子列表 y:List[int]#二进制真值指示符 但是,调用model.fit(…)时,我收到以下错误消息: 找不到可以处理输入的数据适配器:(包含类型{'(包含类型{“”})的值,”(包含类型set()的值)“}), 尽管没有在任何地方使用设置 第二种方法: 我尝试对内部列表使用numpy数组,如下所示: x:List[np.nda

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

数据结构大致如下所示:

第一种方法:
x:List[List[int]#由句子中每个单词的单词ID列表组成的句子列表
y:List[int]#二进制真值指示符
但是,调用
model.fit(…)
时,我收到以下错误消息:

找不到可以处理输入的数据适配器:(包含类型{'(包含类型{“”})的值,”(包含类型set()的值)“}),

尽管没有在任何地方使用
设置

第二种方法: 我尝试对内部列表使用numpy数组,如下所示:

x:List[np.ndarray[np.int32]]
y:np.ndarray[np.int32]
但我收到了以下错误:

输入数组的样本数应与目标数组的样本数相同。找到32个输入样本和479个目标样本。

第三种方法: 这促使我将数据结构更改为:

x:np.ndarray[np.ndarray[np.int32]]
y:np.ndarray[np.int32]
这导致了以下错误:

无法将NumPy数组转换为张量(不支持的对象类型NumPy.ndarray)。

第四种方法: 努力

x:np.ndarray[List[int]]
y:np.ndarray[int]
导致以下类似的错误消息:

无法将NumPy数组转换为张量(不支持的对象类型列表)。

太长,读不下去了 所以问题是:发生了什么?为什么
model.fit(…)
不接受这些参数


请参阅下面我的答案。

我之所以记录这种混乱,是因为根本问题与错误消息无关

根本问题是输入数据(
x
)需要填充

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


如果你输入,第三种方法和第四种方法都应该有效。

这是我非常相似问题的答案。