iiooii
iiooii

Reputation: 581

How do you feed one tf keras layer an already defined weight matrix?

I'm trying to feed a specific tk.keras.layer a weight matrix, w. I've found methods to load a weight matrix in a model but not for one layer. I want to load w into the Conv2DTranspose layer after I do some transformations on w.

Code:

  encoder_img = tf.keras.layers.Input(shape=(28, 28, 1), name="input")
  x = tf.keras.layers.Conv2D(64, 3, activation='relu', kernel_initializer=keras.initializers.RandomUniform)(encoder_img)
  x = tf.keras.layers.MaxPooling2D(1)(x)
  x = tf.keras.layers.Conv2D(32, 3, activation='relu')(x)
  x = tf.keras.layers.MaxPooling2D(1)(x)
  encoder_output  = tf.keras.layers.Conv2D(16, 3, activation='relu')(x)

 w = encoder_output.get_weights()
 ...some operations on w 
 x = tf.keras.layers.Conv2DTranspose(16, 3, activation='relu')(encoder_output)
 x = tf.keras.layers.UpSampling2D(1)(x)...

Upvotes: 0

Views: 67

Answers (1)

gorjan
gorjan

Reputation: 5555

The tf.keras.Layer.set_weights() should do the trick for you.

Upvotes: 1

Related Questions