0% found this document useful (0 votes)
28 views57 pages

CNN Layer Visualization

This document discusses loading and visualizing a ResNet50 CNN model trained on ImageNet and applied to the Fashion MNIST dataset. It loads the pretrained ResNet50 model without the top layers, loads the Fashion MNIST training and test data, and summarizes the model architecture. The goal is to use the pretrained weights to classify images in the Fashion MNIST dataset.

Uploaded by

dolly n
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views57 pages

CNN Layer Visualization

This document discusses loading and visualizing a ResNet50 CNN model trained on ImageNet and applied to the Fashion MNIST dataset. It loads the pretrained ResNet50 model without the top layers, loads the Fashion MNIST training and test data, and summarizes the model architecture. The goal is to use the pretrained weights to classify images in the Fashion MNIST dataset.

Uploaded by

dolly n
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 57

Fashion Mnist - Resnet 50 - CNN Visualization

Import Libraries
import tensorflow as tf
import pandas as pd
import numpy as np
from keras.models import Model

import matplotlib.pyplot as plt


import seaborn as sns
import random
from sklearn.metrics import confusion_matrix, classification_report,
accuracy_score

# from utils import mnist_reader # Download from Fashion Mnist repo


import mnist_reader

print(len(tf.config.list_physical_devices('GPU'))>0)

True

Download and Load Data


# Download Data if needed
# !wget http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-
images-idx3-ubyte.gz
# !wget http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-
labels-idx1-ubyte.gz
# !wget http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-
images-idx3-ubyte.gz
# !wget http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-
labels-idx1-ubyte.gz

# Load Data
# Change Data folder respectively
data_folder = "./data"

train_images, train_labels = mnist_reader.load_mnist(data_folder, "train")


test_images, test_labels = mnist_reader.load_mnist(data_folder, "t10k")

train_images = train_images.reshape(-1, 28,28)


test_images = test_images.reshape(-1, 28,28)

Load ResNet 50 Model Trained on ImageNet Data


# Load the pre trained model
# Top is not included for us to customize
base_model = tf.keras.applications.ResNet50(
include_top=False,
weights='imagenet')

# If u want to freeze
# base_model.trainable = False

base_model.summary()

Model: "resnet50"
_____________________________________________________________________________
_____________________
Layer (type) Output Shape Param # Connected to

=============================================================================
=====================
input_1 (InputLayer) [(None, None, None, 0 []

3)]

conv1_pad (ZeroPadding2D) (None, None, None, 0 ['input_1[0]


[0]']
3)

conv1_conv (Conv2D) (None, None, None, 9472


['conv1_pad[0][0]']
64)

conv1_bn (BatchNormalization) (None, None, None, 256


['conv1_conv[0][0]']
64)

conv1_relu (Activation) (None, None, None, 0


['conv1_bn[0][0]']
64)

pool1_pad (ZeroPadding2D) (None, None, None, 0


['conv1_relu[0][0]']
64)
pool1_pool (MaxPooling2D) (None, None, None, 0
['pool1_pad[0][0]']
64)

conv2_block1_1_conv (Conv2D) (None, None, None, 4160


['pool1_pool[0][0]']
64)

conv2_block1_1_bn (BatchNormal (None, None, None, 256


['conv2_block1_1_conv[0][0]']
ization) 64)

conv2_block1_1_relu (Activatio (None, None, None, 0


['conv2_block1_1_bn[0][0]']
n) 64)

conv2_block1_2_conv (Conv2D) (None, None, None, 36928


['conv2_block1_1_relu[0][0]']
64)

conv2_block1_2_bn (BatchNormal (None, None, None, 256


['conv2_block1_2_conv[0][0]']
ization) 64)

conv2_block1_2_relu (Activatio (None, None, None, 0


['conv2_block1_2_bn[0][0]']
n) 64)

conv2_block1_0_conv (Conv2D) (None, None, None, 16640


['pool1_pool[0][0]']
256)
conv2_block1_3_conv (Conv2D) (None, None, None, 16640
['conv2_block1_2_relu[0][0]']
256)

conv2_block1_0_bn (BatchNormal (None, None, None, 1024


['conv2_block1_0_conv[0][0]']
ization) 256)

conv2_block1_3_bn (BatchNormal (None, None, None, 1024


['conv2_block1_3_conv[0][0]']
ization) 256)

conv2_block1_add (Add) (None, None, None, 0


['conv2_block1_0_bn[0][0]',
256)
'conv2_block1_3_bn[0][0]']

conv2_block1_out (Activation) (None, None, None, 0


['conv2_block1_add[0][0]']
256)

conv2_block2_1_conv (Conv2D) (None, None, None, 16448


['conv2_block1_out[0][0]']
64)

conv2_block2_1_bn (BatchNormal (None, None, None, 256


['conv2_block2_1_conv[0][0]']
ization) 64)

conv2_block2_1_relu (Activatio (None, None, None, 0


['conv2_block2_1_bn[0][0]']
n) 64)
conv2_block2_2_conv (Conv2D) (None, None, None, 36928
['conv2_block2_1_relu[0][0]']
64)

conv2_block2_2_bn (BatchNormal (None, None, None, 256


['conv2_block2_2_conv[0][0]']
ization) 64)

conv2_block2_2_relu (Activatio (None, None, None, 0


['conv2_block2_2_bn[0][0]']
n) 64)

conv2_block2_3_conv (Conv2D) (None, None, None, 16640


['conv2_block2_2_relu[0][0]']
256)

conv2_block2_3_bn (BatchNormal (None, None, None, 1024


['conv2_block2_3_conv[0][0]']
ization) 256)

conv2_block2_add (Add) (None, None, None, 0


['conv2_block1_out[0][0]',
256)
'conv2_block2_3_bn[0][0]']

conv2_block2_out (Activation) (None, None, None, 0


['conv2_block2_add[0][0]']
256)

conv2_block3_1_conv (Conv2D) (None, None, None, 16448


['conv2_block2_out[0][0]']
64)
conv2_block3_1_bn (BatchNormal (None, None, None, 256
['conv2_block3_1_conv[0][0]']
ization) 64)

conv2_block3_1_relu (Activatio (None, None, None, 0


['conv2_block3_1_bn[0][0]']
n) 64)

conv2_block3_2_conv (Conv2D) (None, None, None, 36928


['conv2_block3_1_relu[0][0]']
64)

conv2_block3_2_bn (BatchNormal (None, None, None, 256


['conv2_block3_2_conv[0][0]']
ization) 64)

conv2_block3_2_relu (Activatio (None, None, None, 0


['conv2_block3_2_bn[0][0]']
n) 64)

conv2_block3_3_conv (Conv2D) (None, None, None, 16640


['conv2_block3_2_relu[0][0]']
256)

conv2_block3_3_bn (BatchNormal (None, None, None, 1024


['conv2_block3_3_conv[0][0]']
ization) 256)

conv2_block3_add (Add) (None, None, None, 0


['conv2_block2_out[0][0]',
256)
'conv2_block3_3_bn[0][0]']
conv2_block3_out (Activation) (None, None, None, 0
['conv2_block3_add[0][0]']
256)

conv3_block1_1_conv (Conv2D) (None, None, None, 32896


['conv2_block3_out[0][0]']
128)

conv3_block1_1_bn (BatchNormal (None, None, None, 512


['conv3_block1_1_conv[0][0]']
ization) 128)

conv3_block1_1_relu (Activatio (None, None, None, 0


['conv3_block1_1_bn[0][0]']
n) 128)

conv3_block1_2_conv (Conv2D) (None, None, None, 147584


['conv3_block1_1_relu[0][0]']
128)

conv3_block1_2_bn (BatchNormal (None, None, None, 512


['conv3_block1_2_conv[0][0]']
ization) 128)

conv3_block1_2_relu (Activatio (None, None, None, 0


['conv3_block1_2_bn[0][0]']
n) 128)

conv3_block1_0_conv (Conv2D) (None, None, None, 131584


['conv2_block3_out[0][0]']
512)
conv3_block1_3_conv (Conv2D) (None, None, None, 66048
['conv3_block1_2_relu[0][0]']
512)

conv3_block1_0_bn (BatchNormal (None, None, None, 2048


['conv3_block1_0_conv[0][0]']
ization) 512)

conv3_block1_3_bn (BatchNormal (None, None, None, 2048


['conv3_block1_3_conv[0][0]']
ization) 512)

conv3_block1_add (Add) (None, None, None, 0


['conv3_block1_0_bn[0][0]',
512)
'conv3_block1_3_bn[0][0]']

conv3_block1_out (Activation) (None, None, None, 0


['conv3_block1_add[0][0]']
512)

conv3_block2_1_conv (Conv2D) (None, None, None, 65664


['conv3_block1_out[0][0]']
128)

conv3_block2_1_bn (BatchNormal (None, None, None, 512


['conv3_block2_1_conv[0][0]']
ization) 128)

conv3_block2_1_relu (Activatio (None, None, None, 0


['conv3_block2_1_bn[0][0]']
n) 128)
conv3_block2_2_conv (Conv2D) (None, None, None, 147584
['conv3_block2_1_relu[0][0]']
128)

conv3_block2_2_bn (BatchNormal (None, None, None, 512


['conv3_block2_2_conv[0][0]']
ization) 128)

conv3_block2_2_relu (Activatio (None, None, None, 0


['conv3_block2_2_bn[0][0]']
n) 128)

conv3_block2_3_conv (Conv2D) (None, None, None, 66048


['conv3_block2_2_relu[0][0]']
512)

conv3_block2_3_bn (BatchNormal (None, None, None, 2048


['conv3_block2_3_conv[0][0]']
ization) 512)

conv3_block2_add (Add) (None, None, None, 0


['conv3_block1_out[0][0]',
512)
'conv3_block2_3_bn[0][0]']

conv3_block2_out (Activation) (None, None, None, 0


['conv3_block2_add[0][0]']
512)

conv3_block3_1_conv (Conv2D) (None, None, None, 65664


['conv3_block2_out[0][0]']
128)
conv3_block3_1_bn (BatchNormal (None, None, None, 512
['conv3_block3_1_conv[0][0]']
ization) 128)

conv3_block3_1_relu (Activatio (None, None, None, 0


['conv3_block3_1_bn[0][0]']
n) 128)

conv3_block3_2_conv (Conv2D) (None, None, None, 147584


['conv3_block3_1_relu[0][0]']
128)

conv3_block3_2_bn (BatchNormal (None, None, None, 512


['conv3_block3_2_conv[0][0]']
ization) 128)

conv3_block3_2_relu (Activatio (None, None, None, 0


['conv3_block3_2_bn[0][0]']
n) 128)

conv3_block3_3_conv (Conv2D) (None, None, None, 66048


['conv3_block3_2_relu[0][0]']
512)

conv3_block3_3_bn (BatchNormal (None, None, None, 2048


['conv3_block3_3_conv[0][0]']
ization) 512)

conv3_block3_add (Add) (None, None, None, 0


['conv3_block2_out[0][0]',
512)
'conv3_block3_3_bn[0][0]']
conv3_block3_out (Activation) (None, None, None, 0
['conv3_block3_add[0][0]']
512)

conv3_block4_1_conv (Conv2D) (None, None, None, 65664


['conv3_block3_out[0][0]']
128)

conv3_block4_1_bn (BatchNormal (None, None, None, 512


['conv3_block4_1_conv[0][0]']
ization) 128)

conv3_block4_1_relu (Activatio (None, None, None, 0


['conv3_block4_1_bn[0][0]']
n) 128)

conv3_block4_2_conv (Conv2D) (None, None, None, 147584


['conv3_block4_1_relu[0][0]']
128)

conv3_block4_2_bn (BatchNormal (None, None, None, 512


['conv3_block4_2_conv[0][0]']
ization) 128)

conv3_block4_2_relu (Activatio (None, None, None, 0


['conv3_block4_2_bn[0][0]']
n) 128)

conv3_block4_3_conv (Conv2D) (None, None, None, 66048


['conv3_block4_2_relu[0][0]']
512)
conv3_block4_3_bn (BatchNormal (None, None, None, 2048
['conv3_block4_3_conv[0][0]']
ization) 512)

conv3_block4_add (Add) (None, None, None, 0


['conv3_block3_out[0][0]',
512)
'conv3_block4_3_bn[0][0]']

conv3_block4_out (Activation) (None, None, None, 0


['conv3_block4_add[0][0]']
512)

conv4_block1_1_conv (Conv2D) (None, None, None, 131328


['conv3_block4_out[0][0]']
256)

conv4_block1_1_bn (BatchNormal (None, None, None, 1024


['conv4_block1_1_conv[0][0]']
ization) 256)

conv4_block1_1_relu (Activatio (None, None, None, 0


['conv4_block1_1_bn[0][0]']
n) 256)

conv4_block1_2_conv (Conv2D) (None, None, None, 590080


['conv4_block1_1_relu[0][0]']
256)

conv4_block1_2_bn (BatchNormal (None, None, None, 1024


['conv4_block1_2_conv[0][0]']
ization) 256)
conv4_block1_2_relu (Activatio (None, None, None, 0
['conv4_block1_2_bn[0][0]']
n) 256)

conv4_block1_0_conv (Conv2D) (None, None, None, 525312


['conv3_block4_out[0][0]']
1024)

conv4_block1_3_conv (Conv2D) (None, None, None, 263168


['conv4_block1_2_relu[0][0]']
1024)

conv4_block1_0_bn (BatchNormal (None, None, None, 4096


['conv4_block1_0_conv[0][0]']
ization) 1024)

conv4_block1_3_bn (BatchNormal (None, None, None, 4096


['conv4_block1_3_conv[0][0]']
ization) 1024)

conv4_block1_add (Add) (None, None, None, 0


['conv4_block1_0_bn[0][0]',
1024)
'conv4_block1_3_bn[0][0]']

conv4_block1_out (Activation) (None, None, None, 0


['conv4_block1_add[0][0]']
1024)

conv4_block2_1_conv (Conv2D) (None, None, None, 262400


['conv4_block1_out[0][0]']
256)
conv4_block2_1_bn (BatchNormal (None, None, None, 1024
['conv4_block2_1_conv[0][0]']
ization) 256)

conv4_block2_1_relu (Activatio (None, None, None, 0


['conv4_block2_1_bn[0][0]']
n) 256)

conv4_block2_2_conv (Conv2D) (None, None, None, 590080


['conv4_block2_1_relu[0][0]']
256)

conv4_block2_2_bn (BatchNormal (None, None, None, 1024


['conv4_block2_2_conv[0][0]']
ization) 256)

conv4_block2_2_relu (Activatio (None, None, None, 0


['conv4_block2_2_bn[0][0]']
n) 256)

conv4_block2_3_conv (Conv2D) (None, None, None, 263168


['conv4_block2_2_relu[0][0]']
1024)

conv4_block2_3_bn (BatchNormal (None, None, None, 4096


['conv4_block2_3_conv[0][0]']
ization) 1024)

conv4_block2_add (Add) (None, None, None, 0


['conv4_block1_out[0][0]',
1024)
'conv4_block2_3_bn[0][0]']
conv4_block2_out (Activation) (None, None, None, 0
['conv4_block2_add[0][0]']
1024)

conv4_block3_1_conv (Conv2D) (None, None, None, 262400


['conv4_block2_out[0][0]']
256)

conv4_block3_1_bn (BatchNormal (None, None, None, 1024


['conv4_block3_1_conv[0][0]']
ization) 256)

conv4_block3_1_relu (Activatio (None, None, None, 0


['conv4_block3_1_bn[0][0]']
n) 256)

conv4_block3_2_conv (Conv2D) (None, None, None, 590080


['conv4_block3_1_relu[0][0]']
256)

conv4_block3_2_bn (BatchNormal (None, None, None, 1024


['conv4_block3_2_conv[0][0]']
ization) 256)

conv4_block3_2_relu (Activatio (None, None, None, 0


['conv4_block3_2_bn[0][0]']
n) 256)

conv4_block3_3_conv (Conv2D) (None, None, None, 263168


['conv4_block3_2_relu[0][0]']
1024)
conv4_block3_3_bn (BatchNormal (None, None, None, 4096
['conv4_block3_3_conv[0][0]']
ization) 1024)

conv4_block3_add (Add) (None, None, None, 0


['conv4_block2_out[0][0]',
1024)
'conv4_block3_3_bn[0][0]']

conv4_block3_out (Activation) (None, None, None, 0


['conv4_block3_add[0][0]']
1024)

conv4_block4_1_conv (Conv2D) (None, None, None, 262400


['conv4_block3_out[0][0]']
256)

conv4_block4_1_bn (BatchNormal (None, None, None, 1024


['conv4_block4_1_conv[0][0]']
ization) 256)

conv4_block4_1_relu (Activatio (None, None, None, 0


['conv4_block4_1_bn[0][0]']
n) 256)

conv4_block4_2_conv (Conv2D) (None, None, None, 590080


['conv4_block4_1_relu[0][0]']
256)

conv4_block4_2_bn (BatchNormal (None, None, None, 1024


['conv4_block4_2_conv[0][0]']
ization) 256)
conv4_block4_2_relu (Activatio (None, None, None, 0
['conv4_block4_2_bn[0][0]']
n) 256)

conv4_block4_3_conv (Conv2D) (None, None, None, 263168


['conv4_block4_2_relu[0][0]']
1024)

conv4_block4_3_bn (BatchNormal (None, None, None, 4096


['conv4_block4_3_conv[0][0]']
ization) 1024)

conv4_block4_add (Add) (None, None, None, 0


['conv4_block3_out[0][0]',
1024)
'conv4_block4_3_bn[0][0]']

conv4_block4_out (Activation) (None, None, None, 0


['conv4_block4_add[0][0]']
1024)

conv4_block5_1_conv (Conv2D) (None, None, None, 262400


['conv4_block4_out[0][0]']
256)

conv4_block5_1_bn (BatchNormal (None, None, None, 1024


['conv4_block5_1_conv[0][0]']
ization) 256)

conv4_block5_1_relu (Activatio (None, None, None, 0


['conv4_block5_1_bn[0][0]']
n) 256)
conv4_block5_2_conv (Conv2D) (None, None, None, 590080
['conv4_block5_1_relu[0][0]']
256)

conv4_block5_2_bn (BatchNormal (None, None, None, 1024


['conv4_block5_2_conv[0][0]']
ization) 256)

conv4_block5_2_relu (Activatio (None, None, None, 0


['conv4_block5_2_bn[0][0]']
n) 256)

conv4_block5_3_conv (Conv2D) (None, None, None, 263168


['conv4_block5_2_relu[0][0]']
1024)

conv4_block5_3_bn (BatchNormal (None, None, None, 4096


['conv4_block5_3_conv[0][0]']
ization) 1024)

conv4_block5_add (Add) (None, None, None, 0


['conv4_block4_out[0][0]',
1024)
'conv4_block5_3_bn[0][0]']

conv4_block5_out (Activation) (None, None, None, 0


['conv4_block5_add[0][0]']
1024)

conv4_block6_1_conv (Conv2D) (None, None, None, 262400


['conv4_block5_out[0][0]']
256)
conv4_block6_1_bn (BatchNormal (None, None, None, 1024
['conv4_block6_1_conv[0][0]']
ization) 256)

conv4_block6_1_relu (Activatio (None, None, None, 0


['conv4_block6_1_bn[0][0]']
n) 256)

conv4_block6_2_conv (Conv2D) (None, None, None, 590080


['conv4_block6_1_relu[0][0]']
256)

conv4_block6_2_bn (BatchNormal (None, None, None, 1024


['conv4_block6_2_conv[0][0]']
ization) 256)

conv4_block6_2_relu (Activatio (None, None, None, 0


['conv4_block6_2_bn[0][0]']
n) 256)

conv4_block6_3_conv (Conv2D) (None, None, None, 263168


['conv4_block6_2_relu[0][0]']
1024)

conv4_block6_3_bn (BatchNormal (None, None, None, 4096


['conv4_block6_3_conv[0][0]']
ization) 1024)

conv4_block6_add (Add) (None, None, None, 0


['conv4_block5_out[0][0]',
1024)
'conv4_block6_3_bn[0][0]']
conv4_block6_out (Activation) (None, None, None, 0
['conv4_block6_add[0][0]']
1024)

conv5_block1_1_conv (Conv2D) (None, None, None, 524800


['conv4_block6_out[0][0]']
512)

conv5_block1_1_bn (BatchNormal (None, None, None, 2048


['conv5_block1_1_conv[0][0]']
ization) 512)

conv5_block1_1_relu (Activatio (None, None, None, 0


['conv5_block1_1_bn[0][0]']
n) 512)

conv5_block1_2_conv (Conv2D) (None, None, None, 2359808


['conv5_block1_1_relu[0][0]']
512)

conv5_block1_2_bn (BatchNormal (None, None, None, 2048


['conv5_block1_2_conv[0][0]']
ization) 512)

conv5_block1_2_relu (Activatio (None, None, None, 0


['conv5_block1_2_bn[0][0]']
n) 512)

conv5_block1_0_conv (Conv2D) (None, None, None, 2099200


['conv4_block6_out[0][0]']
2048)
conv5_block1_3_conv (Conv2D) (None, None, None, 1050624
['conv5_block1_2_relu[0][0]']
2048)

conv5_block1_0_bn (BatchNormal (None, None, None, 8192


['conv5_block1_0_conv[0][0]']
ization) 2048)

conv5_block1_3_bn (BatchNormal (None, None, None, 8192


['conv5_block1_3_conv[0][0]']
ization) 2048)

conv5_block1_add (Add) (None, None, None, 0


['conv5_block1_0_bn[0][0]',
2048)
'conv5_block1_3_bn[0][0]']

conv5_block1_out (Activation) (None, None, None, 0


['conv5_block1_add[0][0]']
2048)

conv5_block2_1_conv (Conv2D) (None, None, None, 1049088


['conv5_block1_out[0][0]']
512)

conv5_block2_1_bn (BatchNormal (None, None, None, 2048


['conv5_block2_1_conv[0][0]']
ization) 512)

conv5_block2_1_relu (Activatio (None, None, None, 0


['conv5_block2_1_bn[0][0]']
n) 512)
conv5_block2_2_conv (Conv2D) (None, None, None, 2359808
['conv5_block2_1_relu[0][0]']
512)

conv5_block2_2_bn (BatchNormal (None, None, None, 2048


['conv5_block2_2_conv[0][0]']
ization) 512)

conv5_block2_2_relu (Activatio (None, None, None, 0


['conv5_block2_2_bn[0][0]']
n) 512)

conv5_block2_3_conv (Conv2D) (None, None, None, 1050624


['conv5_block2_2_relu[0][0]']
2048)

conv5_block2_3_bn (BatchNormal (None, None, None, 8192


['conv5_block2_3_conv[0][0]']
ization) 2048)

conv5_block2_add (Add) (None, None, None, 0


['conv5_block1_out[0][0]',
2048)
'conv5_block2_3_bn[0][0]']

conv5_block2_out (Activation) (None, None, None, 0


['conv5_block2_add[0][0]']
2048)

conv5_block3_1_conv (Conv2D) (None, None, None, 1049088


['conv5_block2_out[0][0]']
512)
conv5_block3_1_bn (BatchNormal (None, None, None, 2048
['conv5_block3_1_conv[0][0]']
ization) 512)

conv5_block3_1_relu (Activatio (None, None, None, 0


['conv5_block3_1_bn[0][0]']
n) 512)

conv5_block3_2_conv (Conv2D) (None, None, None, 2359808


['conv5_block3_1_relu[0][0]']
512)

conv5_block3_2_bn (BatchNormal (None, None, None, 2048


['conv5_block3_2_conv[0][0]']
ization) 512)

conv5_block3_2_relu (Activatio (None, None, None, 0


['conv5_block3_2_bn[0][0]']
n) 512)

conv5_block3_3_conv (Conv2D) (None, None, None, 1050624


['conv5_block3_2_relu[0][0]']
2048)

conv5_block3_3_bn (BatchNormal (None, None, None, 8192


['conv5_block3_3_conv[0][0]']
ization) 2048)

conv5_block3_add (Add) (None, None, None, 0


['conv5_block2_out[0][0]',
2048)
'conv5_block3_3_bn[0][0]']
conv5_block3_out (Activation) (None, None, None, 0
['conv5_block3_add[0][0]']
2048)

=============================================================================
=====================
Total params: 23,587,712
Trainable params: 23,534,592
Non-trainable params: 53,120
_____________________________________________________________________________
_____________________

layer = base_model.layers #Conv layers at 2,7,10


filters, biases = base_model.layers[10].get_weights()
print(layer[2].name, filters.shape)

conv1_conv (3, 3, 64, 64)

fig1=plt.figure(figsize=(8, 12))
columns = 8
rows = 8
n_filters = columns * rows
for i in range(1, n_filters +1):
f = filters[:, :, :, i-1]
fig1 =plt.subplot(rows, columns, i)
fig1.set_xticks([]) #Turn off axis
fig1.set_yticks([])
plt.imshow(f[:, :, 0], cmap='gray') #Show only the filters from 0th
channel (R)
#ix += 1
plt.show()
conv_layer_index = [2, 7, 10] #TO define a shorter model
outputs = [base_model.layers[i].output for i in conv_layer_index]
model_short = Model(inputs=base_model.inputs, outputs=outputs)
print(model_short.summary())
Model: "model_3"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) [(None, None, None, 3)] 0

conv1_pad (ZeroPadding2D) (None, None, None, 3) 0

conv1_conv (Conv2D) (None, None, None, 64) 9472

conv1_bn (BatchNormalizatio (None, None, None, 64) 256


n)

conv1_relu (Activation) (None, None, None, 64) 0

pool1_pad (ZeroPadding2D) (None, None, None, 64) 0

pool1_pool (MaxPooling2D) (None, None, None, 64) 0

conv2_block1_1_conv (Conv2D (None, None, None, 64) 4160


)

conv2_block1_1_bn (BatchNor (None, None, None, 64) 256


malization)

conv2_block1_1_relu (Activa (None, None, None, 64) 0


tion)

conv2_block1_2_conv (Conv2D (None, None, None, 64) 36928


)

=================================================================
Total params: 51,072
Trainable params: 50,816
Non-trainable params: 256
_________________________________________________________________
None

# from PIL import Image


# img_pil = Image.fromarray(test_images[2]).resize((28,28))
# im1 = img_pil.save("test_image2.png")

from tensorflow.keras.utils import load_img, img_to_array


img = load_img('test_image2.png', target_size=(28, 28)) #VGG user 224 as
input
img
img = img_to_array(img)
img = np.expand_dims(img, axis=0)
feature_output = model_short.predict(img)

1/1 [==============================] - 0s 84ms/step

columns = 8
rows = 8
for ftr in feature_output:
#pos = 1
print('layer')
fig=plt.figure(figsize=(12, 12))
for i in range(1, columns*rows +1):
fig =plt.subplot(rows, columns, i)
fig.set_xticks([]) #Turn off axis
fig.set_yticks([])
plt.imshow(ftr[0, :, :, i-1], cmap='gray')
#pos += 1
plt.show()

layer
layer
layer
---

.
from tensorflow.keras.utils import load_img, img_to_array
import numpy as np
import matplotlib.pyplot as plt
def get_cnn_visualization(model, list_of_layer_nos):
print(model.summary())
conv_layer_index = list_of_layer_nos #TO define a shorter model
outputs = [model.layers[i].output for i in conv_layer_index]
model_short = Model(inputs=base_model.inputs, outputs=outputs)
print(model_short.summary())

img = load_img('test_image2.png', target_size=(28, 28)) #VGG user 224 as


input

img = img_to_array(img)
img = np.expand_dims(img, axis=0)
feature_output = model_short.predict(img)

columns = 8
rows = 8
for ftr in feature_output:
#pos = 1
print('Conv Layer')
fig=plt.figure(figsize=(12, 12))
for i in range(1, columns*rows +1):
fig =plt.subplot(rows, columns, i)
fig.set_xticks([]) #Turn off axis
fig.set_yticks([])
plt.imshow(ftr[0, :, :, i-1], cmap='gray')
#pos += 1
plt.show()

from tensorflow.keras.utils import load_img, img_to_array


img = load_img('test_image2.png', target_size=(28, 28))
img

import tensorflow as tf
from keras.models import Model
from tensorflow.keras.utils import load_img, img_to_array

base_model = tf.keras.applications.ResNet50(
include_top=False,
weights='imagenet')

get_cnn_visualization(base_model, [2,7,10])

Model: "resnet50"
_____________________________________________________________________________
_____________________
Layer (type) Output Shape Param # Connected to
=============================================================================
=====================
input_18 (InputLayer) [(None, None, None, 0 []

3)]

conv1_pad (ZeroPadding2D) (None, None, None, 0


['input_18[0][0]']
3)

conv1_conv (Conv2D) (None, None, None, 9472


['conv1_pad[0][0]']
64)

conv1_bn (BatchNormalization) (None, None, None, 256


['conv1_conv[0][0]']
64)

conv1_relu (Activation) (None, None, None, 0


['conv1_bn[0][0]']
64)

pool1_pad (ZeroPadding2D) (None, None, None, 0


['conv1_relu[0][0]']
64)

pool1_pool (MaxPooling2D) (None, None, None, 0


['pool1_pad[0][0]']
64)

conv2_block1_1_conv (Conv2D) (None, None, None, 4160


['pool1_pool[0][0]']
64)
conv2_block1_1_bn (BatchNormal (None, None, None, 256
['conv2_block1_1_conv[0][0]']
ization) 64)

conv2_block1_1_relu (Activatio (None, None, None, 0


['conv2_block1_1_bn[0][0]']
n) 64)

conv2_block1_2_conv (Conv2D) (None, None, None, 36928


['conv2_block1_1_relu[0][0]']
64)

conv2_block1_2_bn (BatchNormal (None, None, None, 256


['conv2_block1_2_conv[0][0]']
ization) 64)

conv2_block1_2_relu (Activatio (None, None, None, 0


['conv2_block1_2_bn[0][0]']
n) 64)

conv2_block1_0_conv (Conv2D) (None, None, None, 16640


['pool1_pool[0][0]']
256)

conv2_block1_3_conv (Conv2D) (None, None, None, 16640


['conv2_block1_2_relu[0][0]']
256)

conv2_block1_0_bn (BatchNormal (None, None, None, 1024


['conv2_block1_0_conv[0][0]']
ization) 256)
conv2_block1_3_bn (BatchNormal (None, None, None, 1024
['conv2_block1_3_conv[0][0]']
ization) 256)

conv2_block1_add (Add) (None, None, None, 0


['conv2_block1_0_bn[0][0]',
256)
'conv2_block1_3_bn[0][0]']

conv2_block1_out (Activation) (None, None, None, 0


['conv2_block1_add[0][0]']
256)

conv2_block2_1_conv (Conv2D) (None, None, None, 16448


['conv2_block1_out[0][0]']
64)

conv2_block2_1_bn (BatchNormal (None, None, None, 256


['conv2_block2_1_conv[0][0]']
ization) 64)

conv2_block2_1_relu (Activatio (None, None, None, 0


['conv2_block2_1_bn[0][0]']
n) 64)

conv2_block2_2_conv (Conv2D) (None, None, None, 36928


['conv2_block2_1_relu[0][0]']
64)

conv2_block2_2_bn (BatchNormal (None, None, None, 256


['conv2_block2_2_conv[0][0]']
ization) 64)
conv2_block2_2_relu (Activatio (None, None, None, 0
['conv2_block2_2_bn[0][0]']
n) 64)

conv2_block2_3_conv (Conv2D) (None, None, None, 16640


['conv2_block2_2_relu[0][0]']
256)

conv2_block2_3_bn (BatchNormal (None, None, None, 1024


['conv2_block2_3_conv[0][0]']
ization) 256)

conv2_block2_add (Add) (None, None, None, 0


['conv2_block1_out[0][0]',
256)
'conv2_block2_3_bn[0][0]']

conv2_block2_out (Activation) (None, None, None, 0


['conv2_block2_add[0][0]']
256)

conv2_block3_1_conv (Conv2D) (None, None, None, 16448


['conv2_block2_out[0][0]']
64)

conv2_block3_1_bn (BatchNormal (None, None, None, 256


['conv2_block3_1_conv[0][0]']
ization) 64)

conv2_block3_1_relu (Activatio (None, None, None, 0


['conv2_block3_1_bn[0][0]']
n) 64)
conv2_block3_2_conv (Conv2D) (None, None, None, 36928
['conv2_block3_1_relu[0][0]']
64)

conv2_block3_2_bn (BatchNormal (None, None, None, 256


['conv2_block3_2_conv[0][0]']
ization) 64)

conv2_block3_2_relu (Activatio (None, None, None, 0


['conv2_block3_2_bn[0][0]']
n) 64)

conv2_block3_3_conv (Conv2D) (None, None, None, 16640


['conv2_block3_2_relu[0][0]']
256)

conv2_block3_3_bn (BatchNormal (None, None, None, 1024


['conv2_block3_3_conv[0][0]']
ization) 256)

conv2_block3_add (Add) (None, None, None, 0


['conv2_block2_out[0][0]',
256)
'conv2_block3_3_bn[0][0]']

conv2_block3_out (Activation) (None, None, None, 0


['conv2_block3_add[0][0]']
256)

conv3_block1_1_conv (Conv2D) (None, None, None, 32896


['conv2_block3_out[0][0]']
128)
conv3_block1_1_bn (BatchNormal (None, None, None, 512
['conv3_block1_1_conv[0][0]']
ization) 128)

conv3_block1_1_relu (Activatio (None, None, None, 0


['conv3_block1_1_bn[0][0]']
n) 128)

conv3_block1_2_conv (Conv2D) (None, None, None, 147584


['conv3_block1_1_relu[0][0]']
128)

conv3_block1_2_bn (BatchNormal (None, None, None, 512


['conv3_block1_2_conv[0][0]']
ization) 128)

conv3_block1_2_relu (Activatio (None, None, None, 0


['conv3_block1_2_bn[0][0]']
n) 128)

conv3_block1_0_conv (Conv2D) (None, None, None, 131584


['conv2_block3_out[0][0]']
512)

conv3_block1_3_conv (Conv2D) (None, None, None, 66048


['conv3_block1_2_relu[0][0]']
512)

conv3_block1_0_bn (BatchNormal (None, None, None, 2048


['conv3_block1_0_conv[0][0]']
ization) 512)
conv3_block1_3_bn (BatchNormal (None, None, None, 2048
['conv3_block1_3_conv[0][0]']
ization) 512)

conv3_block1_add (Add) (None, None, None, 0


['conv3_block1_0_bn[0][0]',
512)
'conv3_block1_3_bn[0][0]']

conv3_block1_out (Activation) (None, None, None, 0


['conv3_block1_add[0][0]']
512)

conv3_block2_1_conv (Conv2D) (None, None, None, 65664


['conv3_block1_out[0][0]']
128)

conv3_block2_1_bn (BatchNormal (None, None, None, 512


['conv3_block2_1_conv[0][0]']
ization) 128)

conv3_block2_1_relu (Activatio (None, None, None, 0


['conv3_block2_1_bn[0][0]']
n) 128)

conv3_block2_2_conv (Conv2D) (None, None, None, 147584


['conv3_block2_1_relu[0][0]']
128)

conv3_block2_2_bn (BatchNormal (None, None, None, 512


['conv3_block2_2_conv[0][0]']
ization) 128)
conv3_block2_2_relu (Activatio (None, None, None, 0
['conv3_block2_2_bn[0][0]']
n) 128)

conv3_block2_3_conv (Conv2D) (None, None, None, 66048


['conv3_block2_2_relu[0][0]']
512)

conv3_block2_3_bn (BatchNormal (None, None, None, 2048


['conv3_block2_3_conv[0][0]']
ization) 512)

conv3_block2_add (Add) (None, None, None, 0


['conv3_block1_out[0][0]',
512)
'conv3_block2_3_bn[0][0]']

conv3_block2_out (Activation) (None, None, None, 0


['conv3_block2_add[0][0]']
512)

conv3_block3_1_conv (Conv2D) (None, None, None, 65664


['conv3_block2_out[0][0]']
128)

conv3_block3_1_bn (BatchNormal (None, None, None, 512


['conv3_block3_1_conv[0][0]']
ization) 128)

conv3_block3_1_relu (Activatio (None, None, None, 0


['conv3_block3_1_bn[0][0]']
n) 128)
conv3_block3_2_conv (Conv2D) (None, None, None, 147584
['conv3_block3_1_relu[0][0]']
128)

conv3_block3_2_bn (BatchNormal (None, None, None, 512


['conv3_block3_2_conv[0][0]']
ization) 128)

conv3_block3_2_relu (Activatio (None, None, None, 0


['conv3_block3_2_bn[0][0]']
n) 128)

conv3_block3_3_conv (Conv2D) (None, None, None, 66048


['conv3_block3_2_relu[0][0]']
512)

conv3_block3_3_bn (BatchNormal (None, None, None, 2048


['conv3_block3_3_conv[0][0]']
ization) 512)

conv3_block3_add (Add) (None, None, None, 0


['conv3_block2_out[0][0]',
512)
'conv3_block3_3_bn[0][0]']

conv3_block3_out (Activation) (None, None, None, 0


['conv3_block3_add[0][0]']
512)

conv3_block4_1_conv (Conv2D) (None, None, None, 65664


['conv3_block3_out[0][0]']
128)
conv3_block4_1_bn (BatchNormal (None, None, None, 512
['conv3_block4_1_conv[0][0]']
ization) 128)

conv3_block4_1_relu (Activatio (None, None, None, 0


['conv3_block4_1_bn[0][0]']
n) 128)

conv3_block4_2_conv (Conv2D) (None, None, None, 147584


['conv3_block4_1_relu[0][0]']
128)

conv3_block4_2_bn (BatchNormal (None, None, None, 512


['conv3_block4_2_conv[0][0]']
ization) 128)

conv3_block4_2_relu (Activatio (None, None, None, 0


['conv3_block4_2_bn[0][0]']
n) 128)

conv3_block4_3_conv (Conv2D) (None, None, None, 66048


['conv3_block4_2_relu[0][0]']
512)

conv3_block4_3_bn (BatchNormal (None, None, None, 2048


['conv3_block4_3_conv[0][0]']
ization) 512)

conv3_block4_add (Add) (None, None, None, 0


['conv3_block3_out[0][0]',
512)
'conv3_block4_3_bn[0][0]']

conv3_block4_out (Activation) (None, None, None, 0


['conv3_block4_add[0][0]']
512)

conv4_block1_1_conv (Conv2D) (None, None, None, 131328


['conv3_block4_out[0][0]']
256)

conv4_block1_1_bn (BatchNormal (None, None, None, 1024


['conv4_block1_1_conv[0][0]']
ization) 256)

conv4_block1_1_relu (Activatio (None, None, None, 0


['conv4_block1_1_bn[0][0]']
n) 256)

conv4_block1_2_conv (Conv2D) (None, None, None, 590080


['conv4_block1_1_relu[0][0]']
256)

conv4_block1_2_bn (BatchNormal (None, None, None, 1024


['conv4_block1_2_conv[0][0]']
ization) 256)

conv4_block1_2_relu (Activatio (None, None, None, 0


['conv4_block1_2_bn[0][0]']
n) 256)

conv4_block1_0_conv (Conv2D) (None, None, None, 525312


['conv3_block4_out[0][0]']
1024)
conv4_block1_3_conv (Conv2D) (None, None, None, 263168
['conv4_block1_2_relu[0][0]']
1024)

conv4_block1_0_bn (BatchNormal (None, None, None, 4096


['conv4_block1_0_conv[0][0]']
ization) 1024)

conv4_block1_3_bn (BatchNormal (None, None, None, 4096


['conv4_block1_3_conv[0][0]']
ization) 1024)

conv4_block1_add (Add) (None, None, None, 0


['conv4_block1_0_bn[0][0]',
1024)
'conv4_block1_3_bn[0][0]']

conv4_block1_out (Activation) (None, None, None, 0


['conv4_block1_add[0][0]']
1024)

conv4_block2_1_conv (Conv2D) (None, None, None, 262400


['conv4_block1_out[0][0]']
256)

conv4_block2_1_bn (BatchNormal (None, None, None, 1024


['conv4_block2_1_conv[0][0]']
ization) 256)

conv4_block2_1_relu (Activatio (None, None, None, 0


['conv4_block2_1_bn[0][0]']
n) 256)
conv4_block2_2_conv (Conv2D) (None, None, None, 590080
['conv4_block2_1_relu[0][0]']
256)

conv4_block2_2_bn (BatchNormal (None, None, None, 1024


['conv4_block2_2_conv[0][0]']
ization) 256)

conv4_block2_2_relu (Activatio (None, None, None, 0


['conv4_block2_2_bn[0][0]']
n) 256)

conv4_block2_3_conv (Conv2D) (None, None, None, 263168


['conv4_block2_2_relu[0][0]']
1024)

conv4_block2_3_bn (BatchNormal (None, None, None, 4096


['conv4_block2_3_conv[0][0]']
ization) 1024)

conv4_block2_add (Add) (None, None, None, 0


['conv4_block1_out[0][0]',
1024)
'conv4_block2_3_bn[0][0]']

conv4_block2_out (Activation) (None, None, None, 0


['conv4_block2_add[0][0]']
1024)

conv4_block3_1_conv (Conv2D) (None, None, None, 262400


['conv4_block2_out[0][0]']
256)
conv4_block3_1_bn (BatchNormal (None, None, None, 1024
['conv4_block3_1_conv[0][0]']
ization) 256)

conv4_block3_1_relu (Activatio (None, None, None, 0


['conv4_block3_1_bn[0][0]']
n) 256)

conv4_block3_2_conv (Conv2D) (None, None, None, 590080


['conv4_block3_1_relu[0][0]']
256)

conv4_block3_2_bn (BatchNormal (None, None, None, 1024


['conv4_block3_2_conv[0][0]']
ization) 256)

conv4_block3_2_relu (Activatio (None, None, None, 0


['conv4_block3_2_bn[0][0]']
n) 256)

conv4_block3_3_conv (Conv2D) (None, None, None, 263168


['conv4_block3_2_relu[0][0]']
1024)

conv4_block3_3_bn (BatchNormal (None, None, None, 4096


['conv4_block3_3_conv[0][0]']
ization) 1024)

conv4_block3_add (Add) (None, None, None, 0


['conv4_block2_out[0][0]',
1024)
'conv4_block3_3_bn[0][0]']

conv4_block3_out (Activation) (None, None, None, 0


['conv4_block3_add[0][0]']
1024)

conv4_block4_1_conv (Conv2D) (None, None, None, 262400


['conv4_block3_out[0][0]']
256)

conv4_block4_1_bn (BatchNormal (None, None, None, 1024


['conv4_block4_1_conv[0][0]']
ization) 256)

conv4_block4_1_relu (Activatio (None, None, None, 0


['conv4_block4_1_bn[0][0]']
n) 256)

conv4_block4_2_conv (Conv2D) (None, None, None, 590080


['conv4_block4_1_relu[0][0]']
256)

conv4_block4_2_bn (BatchNormal (None, None, None, 1024


['conv4_block4_2_conv[0][0]']
ization) 256)

conv4_block4_2_relu (Activatio (None, None, None, 0


['conv4_block4_2_bn[0][0]']
n) 256)

conv4_block4_3_conv (Conv2D) (None, None, None, 263168


['conv4_block4_2_relu[0][0]']
1024)
conv4_block4_3_bn (BatchNormal (None, None, None, 4096
['conv4_block4_3_conv[0][0]']
ization) 1024)

conv4_block4_add (Add) (None, None, None, 0


['conv4_block3_out[0][0]',
1024)
'conv4_block4_3_bn[0][0]']

conv4_block4_out (Activation) (None, None, None, 0


['conv4_block4_add[0][0]']
1024)

conv4_block5_1_conv (Conv2D) (None, None, None, 262400


['conv4_block4_out[0][0]']
256)

conv4_block5_1_bn (BatchNormal (None, None, None, 1024


['conv4_block5_1_conv[0][0]']
ization) 256)

conv4_block5_1_relu (Activatio (None, None, None, 0


['conv4_block5_1_bn[0][0]']
n) 256)

conv4_block5_2_conv (Conv2D) (None, None, None, 590080


['conv4_block5_1_relu[0][0]']
256)

conv4_block5_2_bn (BatchNormal (None, None, None, 1024


['conv4_block5_2_conv[0][0]']
ization) 256)
conv4_block5_2_relu (Activatio (None, None, None, 0
['conv4_block5_2_bn[0][0]']
n) 256)

conv4_block5_3_conv (Conv2D) (None, None, None, 263168


['conv4_block5_2_relu[0][0]']
1024)

conv4_block5_3_bn (BatchNormal (None, None, None, 4096


['conv4_block5_3_conv[0][0]']
ization) 1024)

conv4_block5_add (Add) (None, None, None, 0


['conv4_block4_out[0][0]',
1024)
'conv4_block5_3_bn[0][0]']

conv4_block5_out (Activation) (None, None, None, 0


['conv4_block5_add[0][0]']
1024)

conv4_block6_1_conv (Conv2D) (None, None, None, 262400


['conv4_block5_out[0][0]']
256)

conv4_block6_1_bn (BatchNormal (None, None, None, 1024


['conv4_block6_1_conv[0][0]']
ization) 256)

conv4_block6_1_relu (Activatio (None, None, None, 0


['conv4_block6_1_bn[0][0]']
n) 256)
conv4_block6_2_conv (Conv2D) (None, None, None, 590080
['conv4_block6_1_relu[0][0]']
256)

conv4_block6_2_bn (BatchNormal (None, None, None, 1024


['conv4_block6_2_conv[0][0]']
ization) 256)

conv4_block6_2_relu (Activatio (None, None, None, 0


['conv4_block6_2_bn[0][0]']
n) 256)

conv4_block6_3_conv (Conv2D) (None, None, None, 263168


['conv4_block6_2_relu[0][0]']
1024)

conv4_block6_3_bn (BatchNormal (None, None, None, 4096


['conv4_block6_3_conv[0][0]']
ization) 1024)

conv4_block6_add (Add) (None, None, None, 0


['conv4_block5_out[0][0]',
1024)
'conv4_block6_3_bn[0][0]']

conv4_block6_out (Activation) (None, None, None, 0


['conv4_block6_add[0][0]']
1024)

conv5_block1_1_conv (Conv2D) (None, None, None, 524800


['conv4_block6_out[0][0]']
512)
conv5_block1_1_bn (BatchNormal (None, None, None, 2048
['conv5_block1_1_conv[0][0]']
ization) 512)

conv5_block1_1_relu (Activatio (None, None, None, 0


['conv5_block1_1_bn[0][0]']
n) 512)

conv5_block1_2_conv (Conv2D) (None, None, None, 2359808


['conv5_block1_1_relu[0][0]']
512)

conv5_block1_2_bn (BatchNormal (None, None, None, 2048


['conv5_block1_2_conv[0][0]']
ization) 512)

conv5_block1_2_relu (Activatio (None, None, None, 0


['conv5_block1_2_bn[0][0]']
n) 512)

conv5_block1_0_conv (Conv2D) (None, None, None, 2099200


['conv4_block6_out[0][0]']
2048)

conv5_block1_3_conv (Conv2D) (None, None, None, 1050624


['conv5_block1_2_relu[0][0]']
2048)

conv5_block1_0_bn (BatchNormal (None, None, None, 8192


['conv5_block1_0_conv[0][0]']
ization) 2048)
conv5_block1_3_bn (BatchNormal (None, None, None, 8192
['conv5_block1_3_conv[0][0]']
ization) 2048)

conv5_block1_add (Add) (None, None, None, 0


['conv5_block1_0_bn[0][0]',
2048)
'conv5_block1_3_bn[0][0]']

conv5_block1_out (Activation) (None, None, None, 0


['conv5_block1_add[0][0]']
2048)

conv5_block2_1_conv (Conv2D) (None, None, None, 1049088


['conv5_block1_out[0][0]']
512)

conv5_block2_1_bn (BatchNormal (None, None, None, 2048


['conv5_block2_1_conv[0][0]']
ization) 512)

conv5_block2_1_relu (Activatio (None, None, None, 0


['conv5_block2_1_bn[0][0]']
n) 512)

conv5_block2_2_conv (Conv2D) (None, None, None, 2359808


['conv5_block2_1_relu[0][0]']
512)

conv5_block2_2_bn (BatchNormal (None, None, None, 2048


['conv5_block2_2_conv[0][0]']
ization) 512)
conv5_block2_2_relu (Activatio (None, None, None, 0
['conv5_block2_2_bn[0][0]']
n) 512)

conv5_block2_3_conv (Conv2D) (None, None, None, 1050624


['conv5_block2_2_relu[0][0]']
2048)

conv5_block2_3_bn (BatchNormal (None, None, None, 8192


['conv5_block2_3_conv[0][0]']
ization) 2048)

conv5_block2_add (Add) (None, None, None, 0


['conv5_block1_out[0][0]',
2048)
'conv5_block2_3_bn[0][0]']

conv5_block2_out (Activation) (None, None, None, 0


['conv5_block2_add[0][0]']
2048)

conv5_block3_1_conv (Conv2D) (None, None, None, 1049088


['conv5_block2_out[0][0]']
512)

conv5_block3_1_bn (BatchNormal (None, None, None, 2048


['conv5_block3_1_conv[0][0]']
ization) 512)

conv5_block3_1_relu (Activatio (None, None, None, 0


['conv5_block3_1_bn[0][0]']
n) 512)
conv5_block3_2_conv (Conv2D) (None, None, None, 2359808
['conv5_block3_1_relu[0][0]']
512)

conv5_block3_2_bn (BatchNormal (None, None, None, 2048


['conv5_block3_2_conv[0][0]']
ization) 512)

conv5_block3_2_relu (Activatio (None, None, None, 0


['conv5_block3_2_bn[0][0]']
n) 512)

conv5_block3_3_conv (Conv2D) (None, None, None, 1050624


['conv5_block3_2_relu[0][0]']
2048)

conv5_block3_3_bn (BatchNormal (None, None, None, 8192


['conv5_block3_3_conv[0][0]']
ization) 2048)

conv5_block3_add (Add) (None, None, None, 0


['conv5_block2_out[0][0]',
2048)
'conv5_block3_3_bn[0][0]']

conv5_block3_out (Activation) (None, None, None, 0


['conv5_block3_add[0][0]']
2048)

=============================================================================
=====================
Total params: 23,587,712
Trainable params: 23,534,592
Non-trainable params: 53,120
_____________________________________________________________________________
_____________________
None
Model: "model_16"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_18 (InputLayer) [(None, None, None, 3)] 0

conv1_pad (ZeroPadding2D) (None, None, None, 3) 0

conv1_conv (Conv2D) (None, None, None, 64) 9472

conv1_bn (BatchNormalizatio (None, None, None, 64) 256


n)

conv1_relu (Activation) (None, None, None, 64) 0

pool1_pad (ZeroPadding2D) (None, None, None, 64) 0

pool1_pool (MaxPooling2D) (None, None, None, 64) 0

conv2_block1_1_conv (Conv2D (None, None, None, 64) 4160


)

conv2_block1_1_bn (BatchNor (None, None, None, 64) 256


malization)

conv2_block1_1_relu (Activa (None, None, None, 64) 0


tion)

conv2_block1_2_conv (Conv2D (None, None, None, 64) 36928


)

=================================================================
Total params: 51,072
Trainable params: 50,816
Non-trainable params: 256
_________________________________________________________________
None
1/1 [==============================] - 0s 269ms/step
Conv Layer
Conv Layer
Conv Layer

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy