ValueError: Ошибка при проверке ввода: ожидалось, что embedding_1_input будет иметь форму (500,), но получил массив с формой (1,) - PullRequest
0 голосов
/ 09 мая 2020
from keras.datasets import imdb

from keras.models import load_model

deep = load_model('ImdbLSTMtry.h5')

from keras import preprocessing

import numpy as np
(xtrain,ytrain) , (xtest,ytest) = imdb.load_data(num_words=10000)

xtrain = preprocessing.sequence.pad_sequences(xtrain,maxlen=500)

xtest = preprocessing.sequence.pad_sequences(xtest,maxlen=500)

print(xtest[0].shape)

result = deep.predict(xtest[0])

Код модели

from keras.datasets import imdb
from keras import preprocessing
max_fea = 10000
mal = 500
(xtrain,ytrain) , (xtest,ytest) = imdb.load_data(num_words=max_fea)
xtrain = preprocessing.sequence.pad_sequences(xtrain,maxlen=mal)
xtest = preprocessing.sequence.pad_sequences(xtest,maxlen=mal)

from keras.models import Sequential
from keras.layers import Embedding , Flatten , Dense , SimpleRNN, LSTM, GRU
model = Sequential()
model.add(Embedding(10000,8,input_length=mal))
model.add(GRU(32))
model.add(Dense(1,activation='sigmoid'))         model.compile(loss='binary_crossentropy',optimizer='rmsprop',metrics['accuracy'])
model.fit(xtrain,ytrain,epochs=1,batch_size=128,validation_split=0.2)
print(xtest[0])
result = model.evaluate(xtest,ytest)
print(result)
model.save('ImdbLSTMtry.h5')
model.summary()

Я пытаюсь предсказать анализ настроений из набора данных Imdb в keras, я изменил форму ввода, как и форма моих встроенных слоев, но хотя с вышеуказанной ошибкой.

1 Ответ

0 голосов
/ 09 мая 2020

Вы должны попробовать:

result = deep.predict(xtest)

Метод predict предназначен для прогнозирования не только для одного образца (в вашем случае xtest[0]), но и для всего набора данных (xtest) .

Если вам нужен прогноз только для xtest[0], вы можете сделать это следующим образом:

result = deep.predict(np.expand_dims(xtest[0], axis=0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...