吴裕雄 python神经网络(7)


import numpy as np
np.random.randint(0,49,3)


# -*- coding:utf-8 -*-
import keras
from keras.models import Sequential
from keras.layers import Dense,Activation
from keras.layers import Convolution2D,MaxPooling2D,Flatten
from keras.optimizers import Adam,Adadelta
from keras.utils import np_utils #utilities
import matplotlib.pyplot as plt
%matplotlib inline
####引用CIFAR10的数据集
from keras.datasets import cifar10
(train_x,train_y),(test_x,test_y)=cifar10.load_data()
print(train_x.shape,train_y.shape,test_x.shape,test_y.shape)

##把训练的目标值转为one-hot编码
# 1->(0,1,0,0,0,0,0,0,0,0)
n_classes=10
train_Y=keras.utils.to_categorical(train_y,n_classes)
test_Y=keras.utils.to_categorical(test_y,n_classes)
print(train_Y.shape,test_Y.shape)

### visualization
###显示训练数据集train_x(50000,32,32,3)中的前64张图像,
##显示成8*8的形式,并且加入title(label:Truth type)
plt.figure(figsize=(15,15))###显示的每张图像为15*15大小
for i in range(64):
plt.subplot(8,8,(i+1))
plt.imshow(train_x[i])
plt.title("label:{0}".format(train_y[i]))
plt.axis('off')
plt.show()

## 1.构造CNN,分为3层,
# #1(kernel=3*3*32,s=1,p='same',acti='relu')
# #1(pool_size=2,s=2,p='same')
# #1 Dropout(0.2)
# #2(kernel=3*3*64,s=1,p='same',acti='relu')
# #2(pool_size=2,s=2,p='same')
# #2 Dropout(0.2)
# #1(kernel=3*3*128,s=1,p='same',acti='relu')
# #1(pool_size=2,s=2,p='same')
# #2 Dropout(0.2)
from keras.layers import Dropout
model=Sequential()
##layer 1
model.add(Convolution2D(filters=32,kernel_size=(3,3),input_shape=(32,32,3),strides=(1,1),padding='same'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2),strides=(2,2),padding='same'))
model.add(Dropout(0.2))
##layer 2
model.add(Convolution2D(filters=64,kernel_size=(3,3),strides=(1,1),padding='same'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2),strides=(2,2),padding='same'))
model.add(Dropout(0.2))
##layer 3
model.add(Convolution2D(filters=128,kernel_size=(3,3),strides=(1,1),padding='same'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2),strides=(2,2),padding='same'))
model.add(Flatten())
model.add(Dropout(0.2))

### Fully connected layer 1
model.add(Dense(units=128,activation='relu'))
model.add(Dropout(0.5))
### Fully connected layer 2
model.add(Dense(units=256,activation='relu'))
model.add(Dropout(0.5))
### Fully connected layer 3
model.add(Dense(units=n_classes,activation='softmax'))
## conpile
model.compile(optimizer=Adadelta(),loss='categorical_crossentropy',metrics=['accuracy'])
model.summary()

import time
s_time=time.time()
model.fit(train_x,train_Y,epochs=30,batch_size=256,verbose=1)
e_time=time.time()
print("running time%.4f"%(e_time-s_time))

e=model.evaluate(test_x,test_Y,batch_size=256,verbose=1)
print("loss:%.4f"%(e[0]),"accuracy:%.4f"%(e[1]))

from keras.models import load_model
model.save("cifar10_30.h5")###you should install pyh5
del model # deletes the existing model
model.predict(test_x[0],batch_size=1,verbose=0)##报错
##加载模型
model=load_model("cifar10_30.h5")
test_img=test_x[0][np.newaxis,:]
model.predict_classes(test_img,batch_size=1,verbose=0)
#test_img.shape
test_y[0]
吴裕雄 python神经网络(7)的更多相关文章
- 吴裕雄 python神经网络 花朵图片识别(10)
import osimport numpy as npimport matplotlib.pyplot as pltfrom PIL import Image, ImageChopsfrom skim ...
- 吴裕雄 python神经网络 花朵图片识别(9)
import osimport numpy as npimport matplotlib.pyplot as pltfrom PIL import Image, ImageChopsfrom skim ...
- 吴裕雄 python神经网络 手写数字图片识别(5)
import kerasimport matplotlib.pyplot as pltfrom keras.models import Sequentialfrom keras.layers impo ...
- 吴裕雄 python神经网络 水果图片识别(4)
# coding: utf-8 # In[1]:import osimport numpy as npfrom skimage import color, data, transform, io # ...
- 吴裕雄 python神经网络 水果图片识别(3)
import osimport kerasimport timeimport numpy as npimport tensorflow as tffrom random import shufflef ...
- 吴裕雄 python神经网络 水果图片识别(2)
import osimport numpy as npimport matplotlib.pyplot as pltfrom skimage import color,data,transform,i ...
- 吴裕雄 python 神经网络——TensorFlow 循环神经网络处理MNIST手写数字数据集
#加载TF并导入数据集 import tensorflow as tf from tensorflow.contrib import rnn from tensorflow.examples.tuto ...
- 吴裕雄 python 神经网络——TensorFlow 使用卷积神经网络训练和预测MNIST手写数据集
import tensorflow as tf import numpy as np from tensorflow.examples.tutorials.mnist import input_dat ...
- 吴裕雄 python 神经网络——TensorFlow 训练过程的可视化 TensorBoard的应用
#训练过程的可视化 ,TensorBoard的应用 #导入模块并下载数据集 import tensorflow as tf from tensorflow.examples.tutorials.mni ...
- 吴裕雄 python 神经网络——TensorFlow实现搭建基础神经网络
import numpy as np import tensorflow as tf import matplotlib.pyplot as plt def add_layer(inputs, in_ ...
随机推荐
- main.js_vue
下载依赖包:cnpm install 或者cnpm i 启动项目:npm run dev vue如何加载main.js 如果你是用vue.js官网提供的脚手架工具并沿用默认配置的话,你执行npm ru ...
- php会话控制技术
为什么会使用会话控制技术: 允许服务器跟踪统一用户做出的请求 setcookie($name,$value,$expire,$path,$domain,$secure) 参数:名称.值.过期时间.路径 ...
- String.prototype.normalize()
normalize() 方法会按照指定的一种 Unicode 正规形式将当前字符串正规化. 这是一个ES6方法. 许多欧洲语言有语调符号和重音符号.为了表示它们,Unicode 提供了两种方法.一种是 ...
- Solr——从postgresql数据库导入数据
1,配置准备 本文的前提是你已经配置好了solr,并新创建了一个core,我们下面都会按照前一篇文章中的core_demo为基础开始 2,修改soreconfig.xml 在soreconfig.xm ...
- angular的常见问题
ng-if 跟 ng-show/hide 的区别有哪些? 第一点区别是,ng-if 在后面表达式为 true 的时候才创建这个 dom 节点,ng-show 是初始时就创建了,用 display:bl ...
- Django的httprequest对象和httpresponse对象
请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对象,然后Django加载合适的view方法,把这个HttpRequest 对象作为第一个参数传给view方法. ...
- Nginx配置跨域请求“Access-Control-Allow-Origin”
当出现403跨域错误的时候 No 'Access-Control-Allow-Origin' header is present on the requested resource,需要给Nginx服 ...
- OraOLEDB.Oracle找不到驱动问题
如果安装Oracle的时候没有把Oracle Provider for OLE DB,这个组件安装上,那么就会导致在使用程序的时候无法使用Oracle客户端驱动问题,弥补的办法就是重新下载客户端程序. ...
- Eclipse properties.config.yml 配置文件中文编码问题。Eclipse 配置文件插件解决方案
写了中文默认转成unicode. 正常应该是这样子的 其实不是什么大问题只需要装一个插件就行了,插件有很多.推荐使用,Properties Editor 安装方式如下 .这里使用的是离线安装.即本地文 ...
- 我练就数据分析技能从HR转型为产品经理
本文转自知乎 作者:空白白白白 ----------------------------------------------------- 空白白白白写在前面:当我在奥兰多的时候,一位漂亮的女学员(看 ...