码迷,mamicode.com
首页 > 其他好文 > 详细

神经网络cnn—CIFAR_10图像识别

时间:2018-10-03 21:20:11      阅读:444      评论:0      收藏:0      [点我收藏+]

标签:his   info   abi   分享   .com   end   bubuko   tle   pool   


1
from keras.datasets import cifar10 2 from keras.utils import np_utils 3 import matplotlib.pyplot as plt 4 from keras.models import load_model 5 import numpy as np 6 np.random.seed(10) 7 (x_img_train,y_label_train),(x_img_test,y_label_test)=cifar10.load_data() 8 print(train data=,len(x_img_train)) 9 print(test data=,len(x_img_test)) 10 print(x_train_image:,x_img_train.shape) 11 print(x_test_image:,x_img_test.shape) 12 x_img_train_4D=x_img_train.reshape(x_img_train.shape[0],32,32,3).astype(float32) 13 x_img_test_4D=x_img_test.reshape(x_img_test.shape[0],32,32,3).astype(float32) 14 x_img_train_normalize=x_img_train_4D/255.0 15 x_img_test_normalize=x_img_test_4D/255.0 16 print(x_img_train_normalize[0][0][0]) 17 y_label_train_OneHot=np_utils.to_categorical(y_label_train) 18 y_label_test_OneHot=np_utils.to_categorical(y_label_test) 19 print(y_label_train_OneHot[:5]) 20 from keras.models import Sequential 21 from keras.layers import Dense,Dropout,Flatten,Conv2D,MaxPooling2D,ZeroPadding2D,Activation 22 model=Sequential() 23 model.add(Conv2D(filters=32, 24 kernel_size=(3,3), 25 padding=same, 26 input_shape=(32,32,3), 27 activation=relu)) 28 model.add(Dropout(0.25)) 29 model.add(MaxPooling2D(pool_size=(2,2))) 30 model.add(Conv2D(filters=64, 31 kernel_size=(3,3), 32 padding=same, 33 activation=relu)) 34 model.add(Dropout(0.25)) 35 model.add(MaxPooling2D(pool_size=(2,2))) 36 model.add(Flatten()) 37 model.add(Dropout(0.25)) 38 model.add(Dense(1024,activation=relu)) 39 model.add(Dropout(0.25)) 40 model.add(Dense(10,activation=softmax)) 41 print(model.summary()) 42 model.compile(loss=categorical_crossentropy, 43 optimizer=adam,metrics=[accuracy]) 44 try: 45 model=load_model("CnnModel.h5") 46 print("Load model successfully!Continuous training model!......") 47 except : 48 print("Failure of loading model!Start training a new model......") 49 50 train_history=model.fit(x=x_img_train_normalize, 51 y=y_label_train_OneHot,validation_split=0.2, 52 epochs=5,batch_size=128,verbose=1) 53 model.save("CnnModel.h5") 54 print("Saved model to disk") 55 def show_train_history(train_history,train,validation): 56 plt.plot(train_history.history[train]) 57 plt.plot(train_history.history[validation]) 58 plt.title(Train History) 59 plt.ylabel(train) 60 plt.xlabel(Epoch) 61 plt.legend([train,validation],loc=upper left) #显示左上角标签 62 plt.show() 63 show_train_history(train_history,acc,val_acc) 64 show_train_history(train_history,loss,val_loss) 65 scores=model.evaluate(x_img_test_normalize,y_label_test_OneHot) 66 print() 67 print(accuracy,scores[1]) 68 prediction=model.predict_classes(x_img_test_normalize) 69 print("prediction[:10]",prediction[:10]) 70 import matplotlib.pyplot as plt 71 label_dict={0:"airplane",1:"automobile",2:"bird",3:"cat",4:"deer",5:"dog",6:"frog",7:"horse",8:"ship",9:"truck"} 72 def plot_image_labels_prediction_1(image,labels,prediction,idx,num=10): 73 fig=plt.gcf() 74 fig.set_size_inches(12,14) 75 if num>25:num=25 76 for i in range(0,num): 77 ax=plt.subplot(5,5,i+1) 78 ax.imshow(image[idx],cmap=binary) 79 title=str(i)+,+label_dict[labels[i][0]] 80 if len(prediction)>0: 81 title+="=>"+label_dict[prediction[i]] 82 ax.set_title(title,fontsize=10) 83 ax.set_xticks([]);ax.set_yticks([]) 84 idx+=1 85 plt.show() 86 plot_image_labels_prediction_1(x_img_test,y_label_test,prediction,0,10) 87 Predicted_Probability=model.predict(x_img_test_normalize) 88 def show_Predicted_Probability(y,prediction,x_img_test,Predicted_Probability,i): 89 print(label:,label_dict[y[i][0]],predict:,label_dict[prediction[i]]) 90 plt.figure(figsize=(2,2)) 91 plt.imshow(np.reshape(x_img_test[i],(32,32,3))) 92 plt.show() 93 for j in range(10): 94 print(label_dict[j]+ 95 Probability:%1.9f%(Predicted_Probability[i][j])) 96 show_Predicted_Probability(y_label_test,prediction,x_img_test,Predicted_Probability,0) 97 show_Predicted_Probability(y_label_test,prediction,x_img_test,Predicted_Probability,3)
################################

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

 

 

 

 

 

 

 

 

 

神经网络cnn—CIFAR_10图像识别

标签:his   info   abi   分享   .com   end   bubuko   tle   pool   

原文地址:https://www.cnblogs.com/fpzs/p/9739015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!