Copying Weights From One Conv2d Layer To Another
Context I have trained a model on MNIST using Keras. My goal is to print images after the first layer with the first layer being a Conv2D layer. To go about this I'm creating a new
Solution 1:
You are forgetting about bias vectors. Get_weights() and set_weights() functions for conv2d returns a list with weights matrix as first element and bias vector as second. So the error rightly suggests it expects a list with 2 members. Doing the following should thus work
trained_weights = model.layers[0].get_weights()
model_temp.layers[0].set_weights(trained_weights)
Also if you want to get output from an intermediate layer you dont need to manually transfer weights. Doing something like following is much more convenieant
get_layer_output = K.function([model.input],
[model.layers[0].output])
layer_output = get_layer_output([x])[0]
or
intermediate_layer_model = Model(inputs=model.input,
outputs=model.get_layer(layer_name).output)
intermediate_output = intermediate_layer_model.predict(data)
Post a Comment for "Copying Weights From One Conv2d Layer To Another"