Tensorflow: доступ для просмотра активации слоя (тонкая настройка),

Пользуюсь тонкой настройкой. Как я могу увидеть и получить доступ к активациям всех слоев, находящихся внутри сверточной основы?

      conv_base = VGG16(weights='imagenet',
              include_top=False,
              input_shape=(inp_img_h, inp_img_w, 3))

def create_functional_model():
   inp = Input(shape=(inp_img_h, inp_img_w, 3))
   model = conv_base(inp)
   model = Flatten()(model)
   model = Dense(256, activation='relu')(model)
   outp = Dense(1, activation='sigmoid')(model)
   return Model(inputs=inp, outputs=outp)

model = create_functional_model()
model.summary()

Краткое описание модели

      Layer (type)                 Output Shape              Param #   
=================================================================
vgg16 (Functional)           (None, 7, 7, 512)         14714688  
_________________________________________________________________
flatten_2 (Flatten)          (None, 25088)             0         
_________________________________________________________________
dense_4 (Dense)              (None, 256)               6422784   
_________________________________________________________________
dense_5 (Dense)              (None, 1)                 257       
=================================================================
Total params: 21,137,729
Trainable params: 21,137,729
Non-trainable params: 0
_________________________________________________________________

Таким образом, уровни внутри conv_base недоступны.

1 ответ

Как сказал @Frightera в комментариях, вы можете получить доступ к сводке базовой модели:

      model.layers[0].summary()

И если вы хотите получить доступ к функциям активации его слоев, вы можете попробовать следующее:

      print(model.layers[0].layers[index_of_layer].activation)
#or
print(model.layers[0].get_layer("name_of_layer").activation)
Другие вопросы по тегам