【keras】加载min_xception前面几个层,把后面的层给改成自己需要层。或者修改后面几层的参数

参考:keras预训练模型应用(4):fine-turn InceptionV3 https://www.jianshu.com/p/23295376c44d

keras调用自己训练的模型,并去掉全连接层 https://blog.csdn.net/qq_29462849/article/details/83010854

from keras.models import load_model
from keras.utils import plot_model
from keras.models import Model
from keras.layers import Activation, Conv2D
from keras.layers import GlobalAveragePooling2D
pre_model = load_model(load_model_path)  # mini_XCEPTION
pre_model.summary()
plot_model(pre_model, to_file='mini_XCEPTION_7.png')  # 画出模型结构图,并保存成图片

base_model = Model(inputs=pre_model.input, outputs=pre_model.get_layer('add_4').output)
base_model.summary()
# 【1】增加一个卷积层
x = base_model.output
x = Conv2D(num_classes, (3, 3),
           # kernel_regularizer=regularization,
           padding='same', name='conv2d_7')(x)
# 【2】增加一个空域全局平均池化层
x = GlobalAveragePooling2D()(x)
# 【3】增加一个激活层
output = Activation('softmax', name='predictions')(x)
i = 0
# 【3】合并层,构建一个待 fine-turn 的新模型
model = Model(inputs=base_model.input, outputs=output)
plot_model(model, to_file='mini_XCEPTION_3.png')  # 画出模型结构图,并保存成图片
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章