out = inp for i in range(1, len(model_original.layers)): # don't include the input layer lay = model_original.layers[i] config = lay.get_config() #print(config) if type(lay) == MaxPooling2D: #print("Pooling") #out = AveragePooling2D( # pool_size = lay.pool_size, # strides = lay.strides, # padding = lay.padding)(out) new_lay = AveragePooling2D.from_config(config) out = new_lay(out) else: new_lay = Conv2D.from_config(config) #print(new_lay.get_config()) #print(new_lay.get_weights()) #print(new_lay.filters, new_lay.kernel_size) out = new_lay(out) new_lay.set_weights(lay.get_weights()) model = Model(inp, out) model.summary() # Define the loss # Content loss content_layers = ['block4_conv2'] content_loss_op = tf.Variable(0.0)
from tensorflow.python.keras.layers import Dense, Conv2D import numpy as np lay = Conv2D(filters=10, kernel_size=(3, 3)) print(lay.get_weights()) lay.set_weights(lay.get_weights()) print(lay.get_config()) new_lay = Conv2D.from_config(lay.get_config()) print(new_lay.get_weights())