1 from keras.datasets import cifar10
from keras.utils import np_utils
import matplotlib.pyplot as plt
from keras.models import load_model
import numpy as np
np.random.seed()
(x_img_train,y_label_train),(x_img_test,y_label_test)=cifar10.load_data()
print('train data=',len(x_img_train))
print('test data=',len(x_img_test))
print('x_train_image:',x_img_train.shape)
print('x_test_image:',x_img_test.shape)
x_img_train_4D=x_img_train.reshape(x_img_train.shape[],,,).astype('float32')
x_img_test_4D=x_img_test.reshape(x_img_test.shape[],,,).astype('float32')
x_img_train_normalize=x_img_train_4D/255.0
x_img_test_normalize=x_img_test_4D/255.0
print(x_img_train_normalize[][][])
y_label_train_OneHot=np_utils.to_categorical(y_label_train)
y_label_test_OneHot=np_utils.to_categorical(y_label_test)
print(y_label_train_OneHot[:])
from keras.models import Sequential
from keras.layers import Dense,Dropout,Flatten,Conv2D,MaxPooling2D,ZeroPadding2D,Activation
model=Sequential()
model.add(Conv2D(filters=,
kernel_size=(,),
padding='same',
input_shape=(,,),
activation='relu'))
model.add(Dropout(0.25))
model.add(MaxPooling2D(pool_size=(,)))
model.add(Conv2D(filters=,
kernel_size=(,),
padding='same',
activation='relu'))
model.add(Dropout(0.25))
model.add(MaxPooling2D(pool_size=(,)))
model.add(Flatten())
model.add(Dropout(0.25))
model.add(Dense(,activation='relu'))
model.add(Dropout(0.25))
model.add(Dense(,activation='softmax'))
print(model.summary())
model.compile(loss='categorical_crossentropy',
optimizer='adam',metrics=['accuracy'])
try:
model=load_model("CnnModel.h5")
print("Load model successfully!Continuous training model!......")
except :
print("Failure of loading model!Start training a new model......") train_history=model.fit(x=x_img_train_normalize,
y=y_label_train_OneHot,validation_split=0.2,
epochs=,batch_size=,verbose=)
model.save("CnnModel.h5")
print("Saved model to disk")
def show_train_history(train_history,train,validation):
plt.plot(train_history.history[train])
plt.plot(train_history.history[validation])
plt.title('Train History')
plt.ylabel(train)
plt.xlabel('Epoch')
plt.legend(['train','validation'],loc='upper left') #显示左上角标签
plt.show()
show_train_history(train_history,'acc','val_acc')
show_train_history(train_history,'loss','val_loss')
scores=model.evaluate(x_img_test_normalize,y_label_test_OneHot)
print()
print('accuracy',scores[])
prediction=model.predict_classes(x_img_test_normalize)
print("prediction[:10]",prediction[:])
import matplotlib.pyplot as plt
label_dict={:"airplane",:"automobile",:"bird",:"cat",:"deer",:"dog",:"frog",:"horse",:"ship",:"truck"}
def plot_image_labels_prediction_1(image,labels,prediction,idx,num=):
fig=plt.gcf()
fig.set_size_inches(,)
if num>:num=
for i in range(,num):
ax=plt.subplot(,,i+)
ax.imshow(image[idx],cmap='binary')
title=str(i)+','+label_dict[labels[i][]]
if len(prediction)>:
title+="=>"+label_dict[prediction[i]]
ax.set_title(title,fontsize=)
ax.set_xticks([]);ax.set_yticks([])
idx+=
plt.show()
plot_image_labels_prediction_1(x_img_test,y_label_test,prediction,,)
Predicted_Probability=model.predict(x_img_test_normalize)
def show_Predicted_Probability(y,prediction,x_img_test,Predicted_Probability,i):
print('label:',label_dict[y[i][]],'predict:',label_dict[prediction[i]])
plt.figure(figsize=(,))
plt.imshow(np.reshape(x_img_test[i],(,,)))
plt.show()
for j in range():
print(label_dict[j]+
'Probability:%1.9f'%(Predicted_Probability[i][j]))
show_Predicted_Probability(y_label_test,prediction,x_img_test,Predicted_Probability,)
show_Predicted_Probability(y_label_test,prediction,x_img_test,Predicted_Probability,)
################################

keras—神经网络CNN—CIFAR_10图像识别的更多相关文章

  1. keras—神经网络CNN—MNIST手写数字识别

    from keras.datasets import mnist from keras.utils import np_utils from plot_image_1 import plot_imag ...

  2. 如何用卷积神经网络CNN识别手写数字集?

    前几天用CNN识别手写数字集,后来看到kaggle上有一个比赛是识别手写数字集的,已经进行了一年多了,目前有1179个有效提交,最高的是100%,我做了一下,用keras做的,一开始用最简单的MLP, ...

  3. 卷积神经网络CNN

    卷积神经网络,在图像识别和自然语言处理中有很大的作用,讲cnn的中文博客也不少,但是个人感觉说的脉络清晰清晰易懂的不多. 无意中看到这篇博客,写的很好,图文并茂.建议英文好的直接去看原文.英文不好的就 ...

  4. 积神经网络(CNN)的参数优化方法

    http://www.cnblogs.com/bonelee/p/8528863.html 积神经网络的参数优化方法——调整网络结构是关键!!!你只需不停增加层,直到测试误差不再减少. 积神经网络(C ...

  5. 卷积神经网络(CNN)前向传播算法

    在卷积神经网络(CNN)模型结构中,我们对CNN的模型结构做了总结,这里我们就在CNN的模型基础上,看看CNN的前向传播算法是什么样子的.重点会和传统的DNN比较讨论. 1. 回顾CNN的结构 在上一 ...

  6. 卷积神经网络CNN总结

    从神经网络到卷积神经网络(CNN)我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢?其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进.比如下图 ...

  7. 【深度学习系列】手写数字识别卷积神经--卷积神经网络CNN原理详解(一)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  8. 深度学习之卷积神经网络(CNN)详解与代码实现(一)

    卷积神经网络(CNN)详解与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10430073.html 目 ...

  9. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

随机推荐

  1. TSubobjectPtr和C++传统指针的区别

    转自:http://aigo.iteye.com/blog/2282142 主要有以下区别(1和2的前提条件要满足:指针所在的class必须是UObjcct的子类): 1,TSubobjectPtr指 ...

  2. blktrace未公开选项网络保存截取数据

    本文链接地址: blktrace未公开选项网络保存截取数据 我们透过blktrace来观察io行为的时候,第一件事情需要选择目标设备,以便分析该设备的io行为.具体使用可以参考我之前写的几篇:这里 这 ...

  3. 利用Win10计划任务 + 弹窗,提醒你自己

    博主公司周报漏交一次要缴纳50RMB部门经费,另外博主每天上午下午都需要活动10分钟(好像放风..),防止职业病 + 让自己的工作状态更好. 步骤: 1.打开Win10控制面板 —> 点选管理工 ...

  4. ajax json用法 上传文件 登录

     1. json  json  是一种数据结构  跨平台跨语言   1. python中json数据的转换   1.数据类型    字符串 数字 布尔值 列表 字典 None       2. 序列化 ...

  5. uva140-暴力枚举

    题意:任意一个点都至少有一个点与其相连接,所有的点可以进行任意排列,总排列数为n!. 一个点带宽定义与它相连的点的最远距离,一个排列的带宽定义为,点中最大的带宽,找出带宽最小的那个排列,有多组,输出字 ...

  6. Mybatis 为什么不要用二级缓存

    https://www.cnblogs.com/liouwei4083/p/6025929.html mybatis 二级缓存不推荐使用 一 mybatis的缓存使用. 大体就是首先根据你的sqlid ...

  7. OpenCL 查询平台和设备

    ▶ 查询平台和设备的代码以结果,放在这里方便以后逐渐扩充和查询(没有营养) #include <stdio.h> #include <stdlib.h> #include &l ...

  8. Genymotion——VirtualBox cannot start virtual device

    提示"VirtualBox cannot start virtual device" 打开VirtualBox,想要在里面直接启动Genymotion模拟器,又出现错误,提示“Un ...

  9. 过滤器 ;spring拦截器 切片 小结

    1. springMVc的拦截器 实现HandlerInterceptor接口,如下: public class HandlerInterceptor1 implements HandlerInter ...

  10. SpringMVC 之@RequestBody 接收Json数组对象

    1. 摘要 程序流程: 前台使用ajax技术,传递json字符串到后台: 后台使用Spring MVC注解@RequestBody 接受前台传递的json字符串,并返回新的json字符串到前台: 前台 ...