期望密集具有形状,但具有形状的阵列

时间:2018-07-19 11:46:13

标签: python keras shape text-classification

在keras中运行文本分类模型时,调用model.predict函数时出现以下错误。我到处搜索,但对我来说不起作用。

pd.DataFrame({'ID_A_x':[1,1,2,2,3],
             'name':['Mi','Mi','Mi','Mi','Lea'],
             'ID_A_y':[1,2,2,1,3]}).drop_duplicates(['ID_A_y','name'])

我的数据有5个类别,总共只有15个示例。下面是数据集

ValueError: Error when checking input: expected dense_1_input to have shape (100,) but got array with shape (1,)

这是我模型的代码

             query        tags
0               hi       intro
1      how are you       wellb
2            hello       intro
3        what's up       wellb
4       how's life       wellb
5              bye          gb
6    see you later          gb
7         good bye          gb
8           thanks   gratitude
9        thank you   gratitude
10  that's helpful   gratitude
11      I am great  revertfine
12            fine  revertfine
13       I am fine  revertfine
14            good  revertfine

我无法弄清楚问题出在哪里以及如何解决。

2 个答案:

答案 0 :(得分:3)

x_data是形状为(15, 100)的二维数组

  print(x_data.shape) 

但是x_data[0]是形状为(100, )的一维数组

  print(x_data[0].shape) 

这会带来问题。

使用切片x_data[0:1]将其作为形状为(1, 100)的二维数组

 print(x_data[0:1].shape) 

它将起作用

 predictions = model.predict(x_data[0:1])

答案 1 :(得分:1)

predictions = model.predict(x_data)更改为predictions = model.predict(x_data[0:1])

您的NN输入层中有100个神经元,但是您输入的形状似乎只有(1,),因此您需要更改输入形状