网上大多数都是直接调用tf的内置application中的预训练模型,这里用自己训练好的预训练模型。
预训练模型的最后全连接层不要,只保留前面的捕捉特征的层且这些层权重冻结不参与接下来的训练。不冻结也可以,这样相当于从新训练,就没起到预训练模型的效果。
大致代码如下:
# 加载模型
base_model = tf.keras.models.load_model('model-best.h5')
# 得到最后一个全连接之前的层
last_layer = base_model.get_layer(index=len(base_model.layers