猫狗大战:融合了三种模型的Keras代码,准确率直升到99%

From:猫狗大战:融合了三种模型的Keras代码,准确率直升到99%

使用keras的resnet,inceptionV3,xception模型,首先加载预训练模型的权重,通过预训练权重生成对猫狗的训练值和测试值的特征向量 
预训练模型下载地址:http://pan.baidu.com/s/1geHmOpH

[code]

接着加载三个模型,并分别提取出训练集和测试集的权重,放入h5文件中

write_gap(ResNet50, (224, 224))
write_gap(InceptionV3, (299, 299), inception_v3.preprocess_input)
write_gap(Xception, (299, 299), xception.preprocess_input)

得到的每个图片的特征向量都是2048维,所以每个特征文件储存内容都是 
trian:(25000,2048) 
label:(25000,1) 
test:(12500,2048) 
接着,把三个模型合并在一起,每个图片就有2048*3个权重值了

[code]

然后我们基于这些权重值建立一个全连接

inputs = Input(X_train.shape[1:])#shape=(2048*3,)
x = Dropout(0.5)(inputs)
x = Dense(1, activation='sigmoid')(x)
model = Model(inputs, x)
model.compile(optimizer='adadelta',
              loss='binary_crossentropy',
              metrics=['accuracy'])

开始训练,会发现,准确度在第一次训练之后就已经到达99%了,全训练完不到半分钟,训练完成之后就直接用训练好的权重预测测试集吧

[code]

得到结果测试集放在csv文件里

[code]

猜你喜欢

转载自blog.csdn.net/tony2278/article/details/89330506
今日推荐