keras构建卷积神经网络识别cifar10
来源:互联网 发布:淘宝客推广专区在哪里 编辑:程序博客网 时间:2024/05/17 03:00
环境keras ,python2.7
#coding:utf-8from keras.models import Sequentialfrom keras.layers import Dense,Activation,Flatten,Convolution2D,MaxPooling2D,Dropoutfrom keras.utils import np_utilsfrom keras.optimizers import Adamfrom sklearn.metrics import confusion_matrix,classification_reportimport numpy as npimport scipy.io as sioimport datetime"""cifar文件包含训练集50000张,测试集合10000张数据集为matlab类型data_batch_1训练集样本数据10000张data_batch_2训练集样本数据10000张data_batch_3训练集样本数据10000张data_batch_4训练集样本数据10000张data_batch_5训练集样本数据10000张"""start_time = datetime.datetime.now()#learning_rate = 0.0001#batch_size = 128#读取数据def read_data(filename): with open(filename,'rb') as f: dict = sio.loadmat(f) #图片维度要变换 return np.array(dict['data']).reshape(10000,3,32,32).transpose(0,2,3,1),np.array(dict['labels']).reshape(10000,1)#将图片转为灰度图def to4d(img): return img.reshape(img.shape[0],32,32,3).astype(np.float32)/255train_total_data,train_total_labels = read_data('/mnt/data/chuanhuang/cifar-10-batches-mat/data_batch_1.mat')#将数据集合并for batch_num in range(2,6): train_data,train_labels = read_data('/mnt/data/chuanhuang/cifar-10-batches-mat/data_batch_'+str(batch_num)+'.mat') train_total_data = np.vstack((train_total_data,train_data)) train_total_labels = np.vstack((train_total_labels,train_labels))#train_data,train_labels = read_data('/home/tuoxin/mytensorflow/my_project/project3/cifar-10-batches-py/data_batch_0')train_data = to4d(train_total_data)train_labels = np_utils.to_categorical(train_total_labels,10)test_data,test_labels = read_data('/mnt/data/chuanhuang/cifar-10-batches-mat/test_batch.mat')test_data = to4d(test_data)test_labels = np_utils.to_categorical(test_labels,10)#开始构建模型model = Sequential()model.add(Convolution2D(32,3,3,border_mode='same',input_shape=(32,32,3),))model.add(Activation('relu'))model.add(Convolution2D(32,3,3,border_mode='valid'))model.add(Activation('relu'))model.add(MaxPooling2D(pool_size=(2,2)))model.add(Dropout(0.25))model.add(Convolution2D(64,3,3,border_mode='same'))model.add(Activation('relu'))model.add(Convolution2D(64,3,3,border_mode='valid'))model.add(Activation('relu'))model.add(MaxPooling2D(pool_size=(2,2)))model.add(Dropout(0.25))model.add(Flatten())model.add(Dense(512))model.add(Activation('relu'))model.add(Dropout(0.5))model.add(Dense(10))model.add(Activation('softmax'))model.compile(optimizer=Adam(lr=0.0001),loss='categorical_crossentropy',metrics=['accuracy'])model.fit(train_data,train_labels,nb_epoch=200,batch_size=128,shuffle=True,verbose=1)test_score,test_accuracy = model.evaluate(test_data,test_labels)predictions = model.predict(test_data,batch_size=32)#混淆矩阵print(confusion_matrix(test_labels,predictions))#reportprint(classification_report(test_labels,np.array(predictions)))#模型训练了多久end_time = datetime.datetime.now()total_time = (end_time - start_time).secondsprint('total time is:',total_time)
结果:
训练时间太久,手动暂停,从训练分析的趋势看,检测精度还会继续上升
阅读全文
0 0
- keras构建卷积神经网络识别cifar10
- keras/构建卷积神经网络识别mnist
- keras/构建卷积神经网络人脸识别
- tensorflow1.1/构建卷积神经网络识别文本
- 卷积神经网络CNN——使用keras识别猫咪
- keras入门 利用卷积神经网络进行手写数字识别
- Keras实现卷积神经网络
- tensorflow1.1/构建深度卷积神经网络识别物体识别
- 【TensorFlow-windows】(五) CNN(卷积神经网络)对cifar10的识别
- Keras:2.3 keras实现卷积神经网络
- 第六课 Tensorflow Cifar10 CNN 卷积神经网络
- tensorflow1.1/构建卷积神经网络识别手写数字
- tensorflow1.1/构建卷积神经网络人脸识别
- 4用于cifar10的卷积神经网络-4.1用于cifar10的卷积神经网络结构设计
- 用keras小试CNN卷积神经网络应用于人脸识别
- 卷积神经网络实战(可视化部分)——使用keras识别猫咪
- 卷积神经网络实战(可视化部分)——使用keras识别猫咪
- 卷积神经网络实战(可视化部分)——使用keras识别猫咪
- 人脸肤色相似度检测——程序及运行结果
- FZU 1686神龙的难题 (重复覆盖)
- 23种设计模式全解析
- Servlet,报了一上午404和500的报错
- HDU 5919Sequence II (主席树,不同元素个数+第K大)
- keras构建卷积神经网络识别cifar10
- 如何用十条命令在一分钟内检查Linux服务器性能
- mod函数和rem函数的区别
- 231. Power of Two
- JS原生实现自定义滚动条
- kafka配置参数
- linux下PPPoE Server测试环境搭建
- SpringMVC报404的一种可能
- maven新增tomcat插件