keras 预训练模型finetune,多模型ensemble,修改loss函数,调节学习率
加载预训练模型并finetune
这里使用的是keras库里的MobileNet模型,预训练权重也是官方自带的,最终finetune为自己需要的分类
from keras.layers import Activation, Convolution2D, Dropout, Conv2D, Average
from keras.layers import AveragePooling2D, BatchNormalization
from keras.layers import GlobalAveragePooling2D
from keras.models import Sequential
from keras.layers import Flatten
from keras.models import Model
from keras.layers import Input
from keras.layers import MaxPooling2D
from keras.layers import SeparableConv2D
from keras import layers
from keras.regularizers import l2
from keras.applications.mobilenet import MobileNet
from keras import models
from keras import layers
input_shape = (224,224,3)
img_input = Input(input_shape)
num_classes = 7
def mobilenet(img_input, num_classes):
#加载ImageNet的预训练权重
base_model = MobileNet(weights='imagenet', include_top = False, input_tensor=img_input)
#不冻结网络层