2017-04-19 4 views
2

habe ich LSTM Modell imdb Beispiel mit und versuchte, die Stimmung in meiner eigenen Saite zur VorhersageKeras Fehler bei der Überprüfung: erwartete embedding_1_input Form zu haben (None, 100), aber bekam Array mit Form (1, 3)

max_features = 20000 
# cut texts after this number of words 
# (among top max_features most common words) 
maxlen = 100 
batch_size = 32 


wordsA = "I like this review" 

wordIndexes = imdb.get_word_index() 

wordArray = wordsA.split() 
intArray = [] 
for word in wordArray: 
    if word in wordIndexes: 
     intArray.append(wordIndexes[word]) 

testArray = np.array([intArray]) 

print('Shape: '+str(testArray.shape)) 

model = load_model('my_model2.h5') 

print(str(testArray)) 

prediction = model.predict(testArray) 
print(prediction)   

Aber wenn ich versuche Vorhersage zu tun ich mit folgenden Zurückverfolgungs

Traceback (jüngste Aufforderung zuletzt) ​​erhalten errored:

Datei "" Linie 1 in runfile ('C:/Users/Radosław/nauka /python/SentimentAnalysis/sentiment_console.py ', wdir =' C:/Benutzer/R adosław/nauka/Python/SentimentAnalysis')

Datei "C: \ Programdata \ Anaconda3 \ lib \ site-packages \ spyder \ utils \ site \ sitecustomize.py", Linie 866, in runfile execfile (Dateiname, Namespace)

Datei "C: \ Program \ Anaconda3 \ lib \ site-packages \ spyder \ utils \ site \ sitecustomize.py", Leitung 102, in execfile exec (kompilieren (f.read(), Dateiname ' exec '), Namensraum)

Datei "C: /Users/Radosław/nauka/python/SentimentAnalysis/sentiment_console.py", Zeile 47, in Prädiktion = model.predict (testarray)

Datei "C: \ Program \ Anaconda3 \ lib \ site-packages \ Keras \ models.py", Linie 899, vorherzusagen, in return self.model.predict (x, batch_size = batch_size, ausführliche = ausführlich)

Datei "C: \ Programdata \ Anaconda3 \ lib \ site-packages \ keras \ Engine \ training.py", Linie 1555 in vorhersagen check_batch_axis = false)

Datei „C: \ Programdata \ Anaconda3 \ lib \ site-packages \ keras \ engine \ training.py ", Zeile 133, in _standardize_input_data str (array.shape))

ValueError: Fehler beim Überprüfen: erwartetes embedding_1_input zu haben shape (None, 100) aber Array mit Shape erhalten (1, 3)

Gibt es einen geeigneten Weg, mein Input-Array neu zu gestalten?

+0

Wie ist das Modell definiert, das Sie laden? Es definiert wahrscheinlich eine Eingabeform von 100 Wörtern Länge. Der Weg, variable Nachrichten-/Textlänge zu behandeln, besteht darin, die kurzen Wörter zu füllen und die langen zu trennen, so dass Ihre Eingabe immer 100 Wörter lang ist –

Antwort

0

Sie haben alles, aber vergessen Sie die Reihenfolge Padding. Fügen Sie diese Zeile hinzu, bevor Sie die Vorhersage aufrufen.

testArray = sequence.pad_sequences(testArray, maxlen=maxlen) 
Verwandte Themen