利用三个卷积层和三个全连接层,对cifar-10数据集进行训练。第一二个卷积层为32个5X5的卷积核,第三个卷积层为64个5X5的卷积核,卷积层初始参数为方差0.01正态随机数,激活函数为Relu。每个卷积层后都跟随一个池化层,第一个池化层为MaxPooling,第二三个池化层为AveragePooling。
需注意的是,训练数据需经过去均值和标准化,这点很重要。实现代码如下:
import os
import cv2
import numpy
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Conv2D, MaxPooling2D, Flatten, AveragePooling2D
from keras.layers import initializers
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.utils.vis_utils import plot_model
def loadData(path):
data = []
labels = []
for i in range(10):
dir1 = './'+path+'/'+str(i)
listImg = os.listdir(dir1)
for img in listImg:
imgIn = cv2.imread(dir1+'/'+img)
if imgIn.size != 3072: print 'Img error&