'How to visualize activations of leayers in tensorlow?
I am trying to visualize activation of layers in my model, but got a value error calling:
ValueError: Graph disconnected: cannot obtain value for tensor KerasTensor(type_spec=TensorSpec(shape=(None, 128, 128, 3), dtype=tf.float32, name='input_1'), name='input_1', description="created by layer 'input_1'") at layer "conv1_pad". The following previous layers were accessed without issue: []
when I was trying:
activation_model = Model(inputs = model.input, outputs = layer_outputs)
Following is my code
from tensorflow.keras.preprocessing import image
import numpy as np
# Pre-processing the image
img = image.load_img("fluidsets/1VS1/177.jpg", target_size = (128, 128))
img_tensor = image.img_to_array(img)
img_tensor = np.expand_dims(img_tensor, axis = 0)
img_tensor = img_tensor / 255.
# Print image tensor shape
print(img_tensor.shape)
# Print image
# import matplotlib.pyplot as plt
# plt.imshow(img_tensor[0])
# plt.show()
# Outputs of the 8 layers, which include conv2D and max pooling layers
layer_outputs = [layer.output for layer in model.layers[:8]]
activation_model = Model(inputs = model.input, outputs = layer_outputs)
activations = activation_model.predict(img_tensor)
# Getting Activations of first layer
first_layer_activation = activations[0]
# shape of first layer activation
print(first_layer_activation.shape)
# 6th channel of the image after first layer of convolution is applied
plt.matshow(first_layer_activation[0, :, :, 6], cmap ='viridis')
# 15th channel of the image after first layer of convolution is applied
plt.matshow(first_layer_activation[0, :, :, 15], cmap ='viridis')
This is the detail of my model
Model: "model"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_2 (InputLayer) [(None, 128, 128, 3)] 0
sequential (Sequential) (None, 128, 128, 3) 0
tf.__operators__.getitem (S (None, 128, 128, 3) 0
licingOpLambda)
tf.nn.bias_add (TFOpLambda) (None, 128, 128, 3) 0
resnet50 (Functional) (None, 4, 4, 2048) 23587712
global_average_pooling2d (G (None, 2048) 0
lobalAveragePooling2D)
dropout (Dropout) (None, 2048) 0
dense (Dense) (None, 5) 10245
=================================================================
Total params: 23,597,957
Trainable params: 10,245
Non-trainable params: 23,587,712
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
