Cannot Add Layers To Saved Keras Model. 'model' Object Has No Attribute 'add'
I have a saved a model using model.save(). I'm trying to reload the model and add a few layers and tune some hyper-parameters, however, it throws the AttributeError. Model is loade
Solution 1:
The add
method is present only in sequential models (Sequential
class), which is a simpler interface to the more powerful but complicated functional model (Model
class). load_model
will always return a Model
instance, which is the most generic class.
You can look at the example to see how you can compose different models, but the idea is that, in the end, a Model
behaves pretty much like any other layer. So you should be able to do:
prev_model = load_model('final_model.h5') # loading the previously saved model.
new_model = Sequential()
new_model.add(prev_model)
new_model.add(Dense(256,activation='relu'))
new_model.add(Dropout(0.5))
new_model.add(Dense(1,activation='sigmoid'))
new_model.compile(...)
Solution 2:
That is due to the fact, that the loaded model is of a functional type instead of a Sequential model. Therefore, you will have to make use of the functional API as described here:(https://keras.io/getting-started/functional-api-guide/).
At the end of the day the correct function is something like this:
fc = Dense(256,activation='relu')(prev_model)
drop = Dropout(0.5)(fc)
fc2 = Dense(1,activation='sigmoid')(drop)
model = Model(inputs=prev_model.input, outputs=fc2)
Post a Comment for "Cannot Add Layers To Saved Keras Model. 'model' Object Has No Attribute 'add'"