检查目标时出错:预期嵌入_44具有形状(50,50),但获得具有形状(40435100,1)的数组

2024-05-16 08:40:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用lstm找到重复的问题,与我在这个链接中的相关问题几乎相同:https://medium.com/@sabber/classifying-yelp-review-comments-using-lstm-and-word-embeddings-part-1-eb2275e4066b

lstm的所有标记化到排序都已完成!但是当我拟合模型时,错误发生在keras嵌入中。它工作正常,但我不知道我做了什么更改,现在它的结果是这样的=检查目标时出错:预期嵌入_44具有形状(50,50),但得到了具有形状的数组(40435100,1)

我尝试了几乎所有的方法,但都无效,请帮助!,对不起,如果我用英语表达的方式让你不舒服

她是我的密码:

from keras.layers.embeddings import Embedding
import numpy as np
from keras.layers import LSTM
from keras.preprocessing.sequence import pad_sequences
from keras.preprocessing.text import Tokenizer , text_to_word_sequence

tokenizer = Tokenizer()
sequences = tokenizer.texts_to_sequences(df['question1'])
sequences2 = tokenizer.texts_to_sequences(df['question2'])
sequences3 =  tokenizer.texts_to_sequences(df['is_duplicate'])
data = pad_sequences(sequences, maxlen=50)
data2 = pad_sequences(sequences2, maxlen=50)
data3 = pad_sequences(sequences3, maxlen = 100)

Input= np.concatenate((data,data2), axis = 0)


Input = Input.reshape((1,40435100 , 1))        
Output = data3.reshape((1,40435100 ,1 ))

Mainmodel = Sequential()
Mainmodel.add(LSTM(50, dropout=0.2, recurrent_dropout=0.2))
Mainmodel.add(Embedding(80871, 50, input_length=50))
Mainmodel.compile(loss='mean_absolute_error', optimizer='adam',  metrics=['accuracy'])


X_train,X_test,y_train,y_test = train_test_split( Input,  Output,   test_size = 0.2, random_state = 4)

Final = Mainmodel.fit(X_train, y_train, epochs = 2, validation_data =    (X_test,y_test)) 

here the error shows up: checking target: expected embedding_44 to have shape (50, 50) but got   array with shape (40435100, 1)

Expected output is just to start the training process but got stuck in Mainmodel.fit

Tags: tofromtestimportdfinputdatatrain