Ich spiele mit dem reuters-Beispieldatensatz und er läuft einwandfrei (mein Modell ist trainiert). Ich habe gelesen, wie ein Modell gespeichert wird, damit ich es später laden und wieder verwenden kann. Aber wie verwende ich dieses gespeicherte Modell, um einen neuen Text vorherzusagen? Muss ich verwenden models.predict()
?
Muss ich diesen Text auf besondere Weise vorbereiten?
Ich habe es mit versucht
import keras.preprocessing.text
text = np.array(['this is just some random, stupid text'])
print(text.shape)
tk = keras.preprocessing.text.Tokenizer(
nb_words=2000,
filters=keras.preprocessing.text.base_filter(),
lower=True,
split=" ")
tk.fit_on_texts(text)
pred = tk.texts_to_sequences(text)
print(pred)
model.predict(pred)
Aber ich bekomme immer
(1L,)
[[2, 4, 1, 6, 5, 7, 3]]
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-83-42d744d811fb> in <module>()
7 print(pred)
8
----> 9 model.predict(pred)
C:\Users\bkey\Anaconda2\lib\site-packages\keras\models.pyc in predict(self, x, batch_size, verbose)
457 if self.model is None:
458 self.build()
--> 459 return self.model.predict(x, batch_size=batch_size, verbose=verbose)
460
461 def predict_on_batch(self, x):
C:\Users\bkey\Anaconda2\lib\site-packages\keras\engine\training.pyc in predict(self, x, batch_size, verbose)
1132 x = standardize_input_data(x, self.input_names,
1133 self.internal_input_shapes,
-> 1134 check_batch_dim=False)
1135 if self.stateful:
1136 if x[0].shape[0] > batch_size and x[0].shape[0] % batch_size != 0:
C:\Users\bkey\Anaconda2\lib\site-packages\keras\engine\training.pyc in standardize_input_data(data, names, shapes, check_batch_dim, exception_prefix)
79 for i in range(len(names)):
80 array = arrays[i]
---> 81 if len(array.shape) == 1:
82 array = np.expand_dims(array, 1)
83 arrays[i] = array
AttributeError: 'list' object has no attribute 'shape'
Haben Sie Empfehlungen, wie Sie mit einem trainierten Modell Vorhersagen treffen können?
fit()
.Beispiel https://gist.github.com/alexcpn/0683bb940cae510cf84d5976c1652abd
quelle
Sie müssen denselben Tokenizer verwenden, mit dem Sie Ihr Modell erstellt haben!
Andernfalls wird jedem Wort ein anderer Vektor zugewiesen.
Dann benutze ich:
quelle
Ich habe ein neuronales Netzwerk in Keras trainiert, um für einige Daten eine nichtlineare Regression durchzuführen. Dies ist ein Teil meines Codes zum Testen neuer Daten unter Verwendung zuvor gespeicherter Modellkonfigurationen und Gewichte.
quelle
Sie können Ihr Modell einfach mit einem Array der richtigen Form "aufrufen":
Vollständiges Beispiel:
quelle