Modo de solo lectura en keras.

He clonado el modelo de keras de estimación de pose humana de este enlace. Keras de estimación de pose humana

Cuando bash cargar el modelo en google colab, aparece el siguiente error

código

from keras.models import load_model model = load_model('model.h5') 

error

 ValueError Traceback (most recent call last)  in () 1 from keras.models import load_model ----> 2 model = load_model('model.h5') /usr/local/lib/python3.6/dist-packages/keras/engine/saving.py in load_model(filepath, custom_objects, compile) 417 f = h5dict(filepath, 'r') 418 try: --> 419 model = _deserialize_model(f, custom_objects, compile) 420 finally: 421 if opened_new_file: /usr/local/lib/python3.6/dist-packages/keras/engine/saving.py in _deserialize_model(f, custom_objects, compile) 219 return obj 220 --> 221 model_config = f['model_config'] 222 if model_config is None: 223 raise ValueError('No model found in config.') /usr/local/lib/python3.6/dist-packages/keras/utils/io_utils.py in __getitem__(self, attr) 300 else: 301 if self.read_only: --> 302 raise ValueError('Cannot create group in read only mode.') 303 val = H5Dict(self.data.create_group(attr)) 304 return val ValueError: Cannot create group in read only mode. 

¿Puede alguien ayudarme a entender este modo de solo lectura? ¿Cómo puedo cargar este modelo?

Aquí hay un ejemplo de Git Gist creado en Google Collab para usted: https://gist.github.com/kolygri/835ccea6b87089fbfd64395c3895c01f

Hasta donde yo entiendo:

Debe configurar y definir la architecture de su modelo y luego usar model.load_weights (‘alexnet_weights.h5’).

Aquí hay un enlace útil de conversación de Github, que esperamos le ayude a comprender mejor el problema: https://github.com/keras-team/keras/issues/6937

Una solución sencilla es que debe cargar el modelo de guardar de la misma manera que se guarda.

por ejemplo, habías creado un modelo como este

 # Build the model model = Sequential() model.add(Dense(100, input_shape=(10,))) model.add(Activation('relu')) model.add(Dense(10)) model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) #fit the model model.fit(x_train, y_train, batch_size=10, epochs=5, verbose=1, validation_split=0.1) #save model model.save("model.h5") 

así que si quieres cargar este modelo para predicción tienes que seguir los mismos pasos

 from keras.models import load_model # Build the model model = Sequential() model.add(Dense(100, input_shape=(10,))) model.add(Activation('relu')) model.add(Dense(10)) model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) # load model model.load_weights('model.h5') prediction = model.predict( ''' data to predict ''')