Python 期望看到1个数组,但得到了以下3个数组的列表

Python 期望看到1个数组,但得到了以下3个数组的列表,python,input,keras,Python,Input,Keras,我正在与keras一起进行情绪分析项目,因为我是keras的新手,我没有任何解决此问题的想法: 这是我的keras模型 model = Sequential() model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same', input_shape=(15, 512))) model.add(Conv1D(32, kernel_size=3, activation='

我正在与keras一起进行情绪分析项目,因为我是keras的新手,我没有任何解决此问题的想法: 这是我的keras模型

       model = Sequential()

      model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same', 
      input_shape=(15, 512)))
      model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same'))
      model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same'))
      model.add(Conv1D(32, kernel_size=3, activation='elu', padding='same'))
      model.add(Dropout(0.25))
      model.add(Conv1D(32, kernel_size=2, activation='elu', padding='same'))
      model.add(Conv1D(32, kernel_size=2, activation='elu', padding='same'))
      model.add(Conv1D(32, kernel_size=2, activation='elu', padding='same'))
      model.add(Conv1D(32, kernel_size=2, activation='elu', padding='same'))
      model.add(Dropout(0.25))
      model.add(Flatten())
      model.add(Dense(256, activation='tanh'))
      model.add(Dense(256, activation='tanh'))
     model.add(Dropout(0.5))
     model.add(Dense(2, activation='softmax'))

   ......preprocessing for new input.....

  pred = model.predict(np.array(final))
  print("%s sentiment; %f%% confidence" % (labels[np.argmax(pred)], pred[0] 
  [np.argmax(pred)] * 100))
****假设final作为输入 当我想预测输入的情绪时,我会面临这样的错误:

ValueError: Error when checking model input: the list of Numpy arrays that 
you are passing to your model is not the size the model expected. Expected to 
see 1 array(s), but instead got the following list of 3 arrays: [array([[ 
0.08031651,  0.05684812,  0.22872323, ..., -0.19047852
对不起,如果这是一个如此愚蠢的问题!我知道这在SOF中被问了好几次,但他们的大部分建议我都做了,因为我对kras了解不多,所以对我来说似乎不实用


非常感谢

删除您的代码,将此代码添加到该链接中的代码之后

from nltk import word_tokenize
import numpy as np


vector_size=512
padding=np.zeros((vector_size ))
sentences=['im so happy','you are beautiful','i got scolded today']

final=[]
for sentence in sentences:
    temp=[]
    words=word_tokenize(sentence)
    for word in words:
        if word in X_vecs:
            temp.append(X_vecs[words])

    #padding to get length of 15
    for i in range(15-len(temp)):
        temp.append(padding)
    final.append(temp)



predictions = model.predict(np.array(final))

for prediction in predictions:
    print("%s sentiment; %f%% confidence" % (labels[np.argmax(prediction)], prediction[np.argmax(prediction)] * 100))

你能把这个报告给我吗?如果有效,我将解释代码。

好吧。。。您的输入数据应该是“一”数组。不是三个数组。问题在于
fit
predict
或类似方法。您在准备数据时出错。你能添加一些数据准备代码吗?@VikasNS使用了这个代码并添加了一些代码用于预测,在对输入句子进行了一些预处理之后,我的预测代码的其余部分是:italic bold'words=nltk。word_tokenize(evalstence)for word in words:if word in X_vecs:final.append(X_vecs[words])打印(“我找到你的声音”)pred=model.predict(np.array(final))与我的gensim相关的X-vecmodel@VikasNS我知道这可能与我的健康状况或预测有关,但我不知道如何解决它!我的输入形状是15,当我得到一个长度为15的句子时,一切都正常,但如果我将输入更改为3长度,例如,我将面临新的错误:ValueError:检查输入时出错:预期conv1d_1_输入具有形状(15,512),但获得了具有形状(3,512)的数组***512是我的窗口大小word2vec@DanielMöller我知道,但我不知道如何修复它谢谢你的注意,我用你的样本运行它,下面是我的错误:ValueError:检查输入时出错:预期conv1d_1_输入有3维,但得到了形状为(3,1)的数组当然,这是行错误:predictions=model.predict(np.数组(最终))我只是想说谢谢你的关注和分享你的创造性解决方案,这个问题似乎已经解决了!!但不幸的是,我的想法是错误的,我想知道它是否与糟糕的例子有关,感谢百万富翁,我知道你的意思,,,我只是想如果这个问题与填充方法有关,,,我将用强大的语料库将您的代码调整为我的原始代码,希望它能起作用-我将很快报告我的结果。感谢Aloothi Vikas NS,尽管我尝试使用您的解决方案,但我仍在与该错误作斗争,您有什么想法解决它吗?这是我的错误:ValueError:检查输入时出错:预期conv1d_1_输入具有三维,but got阵列具有形状(1,15)