я попытался создать base_model на основе сети xception, следуя этому уроку 1.
модель обучена на базе данных cifar10, и все в порядке (сводка модели показана ниже) image

).
Я сохранил модель как .pkl файл.
Я хочу удалить три последних слоя с именами ( global_average_pooling2d, dropout и Density) и добавить наши, как показано в следующем коде.
Проблема: я не видел слои (input_layer_1, лямбда, последовательный ,true_divide и subtract ) (см. этот рисунок

).Куда они делись?
ремарка:
Когда я меняю Layer_name='xception' на другой пример Layer_name='global_average_pooling2d' слои (input_layer_1, лямбда, последовательный, true_divide и вычитание) появляются в новой модели!!! как показано на рисунке

.
Код: Выделить всё
with open(base_modelpath, 'rb') as file:
base_model = pickle.load(file)
base_model.summary()
base_model.trainable = False
inputs = tf.keras.Input(shape=(32, 32, 3))
layer_name='xception'
intermediate_layer_model = Model(inputs=base_model.input, outputs=base_model.get_layer(layer_name).output)
x = intermediate_layer_model(inputs, training=False)
x = tf.keras.layers.GlobalAveragePooling2D()(x)
x = tf.keras.layers.Dropout(0.3)(x)
outputs = tf.keras.layers.Dense(1, activation=('softmax'))(x)
model = tf.keras.Model(inputs, outputs)
#Check the architecture of the final model
model.summary()
Подробнее здесь: https://stackoverflow.com/questions/793 ... eption-net
Мобильная версия