7vred7
7vred7

Reputation: 13

How to use inception layer in transfer learning

I want to do transfer learning I have am loading these weights files but now I am lost on how to use its layers to train my custom model. Any help will be appreciated Below is the sample code I tried:

local_weights_file= '/tmp/inception_v3_weights_tf_dim_ordering_tf_kernels_notop.h5'

pre_trained_model = InceptionV3(input_shape = (150, 150, 3),
include_top = False,
weights = None)
​
pre_trained_model.load_weights(local_weights_file)
​
for layer in pre_trained_model.layers:
layer.trainable = False

Upvotes: 0

Views: 1032

Answers (1)

Jaskaran Singh
Jaskaran Singh

Reputation: 571

You need to take output of your last layer to and make it input to your final model. Something like this should work

last_layer = pre_trained_model.get_layer('mixed7')
last_output = last_layer.output



# Flatten the output layer to 1 dimension
x = layers.Flatten()(last_output)
# Add a fully connected layer with 1,024 hidden units and ReLU activation
x = layers.Dense(1024, activation='relu')(x)
# Add a dropout rate of 0.2
x = layers.Dropout(0.2)(x)                  
# Add a final sigmoid layer for classification
x = layers.Dense  (1, activation='sigmoid')(x)           

model = Model( pre_trained_model.input, x) 

Upvotes: 2

Related Questions