tutorial instalar example español python theano deep-learning keras

instalar - tensorflow python



Keras, ¿cómo puedo predecir después de entrenar a un modelo? (4)

Estoy jugando con el conjunto de datos reuters-example y funciona bien (mi modelo está entrenado). Leí sobre cómo guardar un modelo, para poder cargarlo más tarde y volver a usarlo. Pero, ¿cómo uso este modelo guardado para predecir un nuevo texto? ¿Utilizo models.predict() ?

¿Tengo que preparar este texto de una manera especial?

Lo intenté con

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)

Pero siempre consigo

(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''

¿Tiene alguna recomendación sobre cómo hacer predicciones con un modelo entrenado?


¡Debes usar el mismo Tokenizer que usaste para construir tu modelo!

De lo contrario, esto dará un vector diferente a cada palabra.

Entonces, estoy usando:

phrase = "not good" tokens = myTokenizer.texts_to_matrix([phrase]) model.predict(np.array(tokens))


Entrené una red neuronal en Keras para realizar una regresión no lineal en algunos datos. Esta es una parte de mi código para probar nuevos datos utilizando la configuración y los pesos del modelo previamente guardados.

fname = r"C:/Users/tauseef/Desktop/keras/tutorials/BestWeights.hdf5" modelConfig = joblib.load(''modelConfig.pkl'') recreatedModel = Sequential.from_config(modelConfig) recreatedModel.load_weights(fname) unseenTestData = np.genfromtxt(r"C:/Users/tauseef/Desktop/keras/arrayOf100Rows257Columns.txt",delimiter=" ") X_test = unseenTestData standard_scalerX = StandardScaler() standard_scalerX.fit(X_test) X_test_std = standard_scalerX.transform(X_test) X_test_std = X_test_std.astype(''float32'') unseenData_predictions = recreatedModel.predict(X_test_std)


model.predict() espera que el primer parámetro sea una matriz numpy. Proporciona una lista, que no tiene el atributo de shape una matriz numpy.

De lo contrario, su código se ve bien, excepto que no está haciendo nada con la predicción. Asegúrese de almacenarlo en una variable, por ejemplo, así:

prediction = model.predict(np.array(tk.texts_to_sequences(text))) print(prediction)