Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Machine Learning by (19k points)

I have a trained model that I've exported the weights and want to partially load into another model. My model is built in Keras using TensorFlow as backend.

Right now I'm doing as follows:

model = Sequential()

model.add(Conv2D(32, (3, 3), input_shape=input_shape, trainable=False))

model.add(Activation('relu', trainable=False))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(32, (3, 3), trainable=False))

model.add(Activation('relu', trainable=False))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3), trainable=True))

model.add(Activation('relu', trainable=True))

model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())

model.add(Dense(64))

model.add(Activation('relu'))

model.add(Dropout(0.5))

model.add(Dense(1))

model.add(Activation('sigmoid'))

model.compile(loss='binary_crossentropy',

              optimizer='rmsprop',

              metrics=['accuracy'])

model.load_weights("image_500.h5")

model.pop()

model.pop()

model.pop()

model.pop()

model.pop()

model.pop()

model.add(Conv2D(1, (6, 6),strides=(1, 1), trainable=True))

model.add(Activation('relu', trainable=True))

model.compile(loss='binary_crossentropy',

              optimizer='rmsprop',

              metrics=['accuracy'])

I'm sure it's a terrible way to do it, although it works.

How do I load just the first 9 layers?

1 Answer

0 votes
by (33.1k points)
edited by

In this case, your first 9 layers are consistently named between your original trained model and the new model, then you can use model.load_weights() with by_name=True. This can update weights only in the layers of your new model that have an identically named layer found in the original trained model.

For example:

model.add(Dense(8, activation='relu',name='dens_1'))

Hope this answer helps you! Thus, Tensorflow Tutorial is quite beneficial for a better aspect of this.

Watch this video to know more about Keras:

Browse Categories

...