mnist各种网络研究3 网络组合

尝试先训练几个独立的网络,预测的时候再组合到一起:

import numpy as np
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential,Model
from keras.layers import Input,Conv2D,Dense,Dropout,Convolution2D,MaxPooling2D,Flatten,SeparableConv2D,concatenate
from keras.optimizers import Adam
from keras import optimizers,regularizers
import tensorflow as tf
from keras.utils import multi_gpu_model
from keras.callbacks import LearningRateScheduler, TensorBoard, ModelCheckpoint

import time

(x_train,y_train),(x_test,y_test) = mnist.load_data()

x_train = x_train.reshape(-1,28,28,1)/255.0
x_test = x_test.reshape(-1,28,28,1)/255.0

from keras.models import load_model
model = load_model('Net14.h5')
#model.summary()
loss,accuracy = model.evaluate(x_test,y_test)
#print('test loss',loss)
print('test accuracy',accuracy)

model2 = load_model('Net16.h5')
#model2.summary()
loss,accuracy = model2.evaluate(x_test,y_test)
#print('test loss2',loss)
print('test accuracy2',accuracy)

test1 = model.predict(x_test,batch_size=2000, verbose=1)
test2 = model2.predict(x_test,batch_size=2000, verbose=1)
test1 = test1+test2


acc = 0
for i in range(test1.shape[0]):
    c = np.argmax(test1[i])
    if (c==y_test[i]) :
        acc = acc+1

acc = acc/test1.shape[0]
print('acc=',acc)

下面网络都是重新训练的,所以acc和上一篇记录的略有差异

网络acc
Net30.9921
Net3_20.9921
Net40.9883
Net4_20.9888
Net140.9764
Net14_20.971
Net160.982
Net14+160.9839
Net14+14_20.9797
Net14+14_2+160.9852
Net14+40.9872
Net4+4_20.9891
Net3+40.9923

结论:
1、差不多准确率的网络结果组合能提高准确率
2、准确率相差较大的网络结果组合反而降低准确率

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值