una tutorial redes recurrente paso neuronales neuronal implementacion hacer espaƱol convolucionales con como python neural-network theano keras

tutorial - redes neuronales python pdf



Keras carga pesos de una red neuronal/error al predecir (1)

model.compile llamar a model.compile . Esto se puede hacer antes o después de la llamada model.load_weights pero debe realizarse después de que se especifique la arquitectura del modelo y antes de la llamada model.predict .

Estoy usando la biblioteca Keras para crear una red neuronal. Tengo un iPython Notebook para cargar los datos de entrenamiento, inicializar la red y "ajustar" los pesos de la red neuronal. Finalmente, guardo los pesos usando el método save_weights (). El código está abajo:

from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation from keras.optimizers import SGD from keras.regularizers import l2 from keras.callbacks import History [...] input_size = data_X.shape[1] output_size = data_Y.shape[1] hidden_size = 100 learning_rate = 0.01 num_epochs = 100 batch_size = 75 model = Sequential() model.add(Dense(hidden_size, input_dim=input_size, init=''uniform'')) model.add(Activation(''tanh'')) model.add(Dropout(0.2)) model.add(Dense(hidden_size)) model.add(Activation(''tanh'')) model.add(Dropout(0.2)) model.add(Dense(output_size)) model.add(Activation(''tanh'')) sgd = SGD(lr=learning_rate, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss=''mse'', optimizer=sgd) model.fit(X_NN_part1, Y_NN_part1, batch_size=batch_size, nb_epoch=num_epochs, validation_data=(X_NN_part2, Y_NN_part2), callbacks=[history]) y_pred = model.predict(X_NN_part2) # works well model.save_weights(''keras_w'')

Luego, en otro portátil iPython, solo quiero usar estos pesos y predecir algunos valores de salida dadas las entradas. Inicializo la misma red neuronal y luego cargo los pesos.

# same headers input_size = 37 output_size = 40 hidden_size = 100 model = Sequential() model.add(Dense(hidden_size, input_dim=input_size, init=''uniform'')) model.add(Activation(''tanh'')) model.add(Dropout(0.2)) model.add(Dense(hidden_size)) model.add(Activation(''tanh'')) model.add(Dropout(0.2)) model.add(Dense(output_size)) model.add(Activation(''tanh'')) model.load_weights(''keras_w'') #no error until here y_pred = model.predict(X_nn)

El problema es que aparentemente, el método load_weights no es suficiente para tener un modelo funcional. Me aparece un error:

--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-17-e6d32bc0d547> in <module>() 1 ----> 2 y_pred = model.predict(X_nn) C:/XXXXXXX/Local/Continuum/Anaconda/lib/site-packages/keras/models.pyc in predict(self, X, batch_size, verbose) 491 def predict(self, X, batch_size=128, verbose=0): 492 X = standardize_X(X) --> 493 return self._predict_loop(self._predict, X, batch_size, verbose)[0] 494 495 def predict_proba(self, X, batch_size=128, verbose=1): AttributeError: ''Sequential'' object has no attribute ''_predict''

¿Alguna idea? Muchas gracias.