I'm trying to extract the output of thelayer
in my autoencoder and have referenced this Keras documentation and this stackoverflow post so far. When I try to extract the output, I get the following error:
Traceback (most recent call last):
File "train.py", line 36, in <module>
outputs=autoencoder.get_layer(layer_name).output)
File "..Traceback (most recent call last):
File "train.py", line 36, in <module>
outputs=autoencoder.get_layer(layer_name).output)
File "..python3.6/site packages/tensorflow/python/keras/engine/network.py", line 567, in get_layer
raise ValueError('No such layer: ' + name)
ValueError: No such layer: thelayer
", line 567, in get_layer
raise ValueError('No such layer: ' + name)
ValueError: No such layer: thelayer
Code:
encoder_img = tf.keras.layers.Input(shape=(16,16,1), name="input")
x = tf.keras.layers.Conv2D(1024, 1, activation='relu',kernel_initializer=keras.initializers.RandomUniform)(encoder_img)
x = tf.keras.layers.MaxPooling2D(1)(x)
inputtothelayer = tf.keras.layers.Conv2D(512, 1, activation='relu')(x)
thelayer = tf.keras.layers.MaxPooling2D(1)(inputtothelayer)
bottleneck = tf.keras.layers.Conv2D(256, 3, activation='relu')(thelayer)
x = tf.keras.layers.Conv2DTranspose(512, 1, activation='relu')(bottleneck)
x = tf.keras.layers.UpSampling2D(1)(x)
x = tf.keras.layers.Conv2DTranspose(1024, 1, activation='relu')(x)
x = tf.keras.layers.UpSampling2D(1)(x)
decoder_output = tf.keras.layers.Conv2DTranspose(1, 3, activation='relu')(x)
autoencoder = tf.keras.Model(inputs=encoder_img,outputs=decoder_output, name='autoencoder')
autoencoder.fit(data, data,
epochs=1,
batch_size=512,
shuffle=True,)
layer_name = 'thelayer'
intermediate_layer_model = autoencoder(inputs=inputtothelayer, outputs=autoencoder.get_layer(layer_name).output)
intermediate_output = intermediate_layer_model.predict(data)
print(intermediate_layer_model)