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)的更多相关文章

  1. 吴裕雄 python神经网络 花朵图片识别(10)

    import osimport numpy as npimport matplotlib.pyplot as pltfrom PIL import Image, ImageChopsfrom skim ...

  2. 吴裕雄 python神经网络 花朵图片识别(9)

    import osimport numpy as npimport matplotlib.pyplot as pltfrom PIL import Image, ImageChopsfrom skim ...

  3. 吴裕雄 python神经网络 手写数字图片识别(5)

    import kerasimport matplotlib.pyplot as pltfrom keras.models import Sequentialfrom keras.layers impo ...

  4. 吴裕雄 python神经网络 水果图片识别(4)

    # coding: utf-8 # In[1]:import osimport numpy as npfrom skimage import color, data, transform, io # ...

  5. 吴裕雄 python神经网络 水果图片识别(3)

    import osimport kerasimport timeimport numpy as npimport tensorflow as tffrom random import shufflef ...

  6. 吴裕雄 python神经网络 水果图片识别(2)

    import osimport numpy as npimport matplotlib.pyplot as pltfrom skimage import color,data,transform,i ...

  7. 吴裕雄 python 神经网络——TensorFlow 循环神经网络处理MNIST手写数字数据集

    #加载TF并导入数据集 import tensorflow as tf from tensorflow.contrib import rnn from tensorflow.examples.tuto ...

  8. 吴裕雄 python 神经网络——TensorFlow 使用卷积神经网络训练和预测MNIST手写数据集

    import tensorflow as tf import numpy as np from tensorflow.examples.tutorials.mnist import input_dat ...

  9. 吴裕雄 python 神经网络——TensorFlow 训练过程的可视化 TensorBoard的应用

    #训练过程的可视化 ,TensorBoard的应用 #导入模块并下载数据集 import tensorflow as tf from tensorflow.examples.tutorials.mni ...

  10. 吴裕雄 python 神经网络——TensorFlow实现搭建基础神经网络

    import numpy as np import tensorflow as tf import matplotlib.pyplot as plt def add_layer(inputs, in_ ...

随机推荐

  1. Hive调优

    Hive存储格式选择 和Hive 相关优化: 压缩参考 Hive支持的存储数的格式主要有:TEXTFILE .SEQUENCEFILE.ORC.PARQUET. 文件存储格式 列式存储和行式存储 行存 ...

  2. 由echarts想到的js中的时间类型

    在工作中使用echarts时,偶然发现折线图中对时间类型变量的用法: now前面的+号何解? now = new Date(+now + oneDay); 后来查阅资料,看到一篇博客,解释如下:这是对 ...

  3. Date对象设置一天的0点

    在某些场景下,页面中的查询点关注的是某一天的数据,但是后台查询的时候,需要的是某一天从0点到当天的23:59:59,我们通过日历插件选择的日期,带回到后台的可能是日起对象,也可能是日期字符串,也可能是 ...

  4. 详解CSS3属性前缀(转)

    原文地址 CSS3的属性为什么要带前缀 使用过CSS3属性的同学都知道,CSS3属性都需要带各浏览器的前缀,甚至到现在,依然还有很多属性需要带前缀.这是为什么呢? 我的理解是,浏览器厂商以前就一直在实 ...

  5. ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot exe

    在Mysql集群中创建用户时.出现如下错误! mysql> create user 'testuse'@'localhost' identified by '111111'; ERROR 129 ...

  6. 好久没玩docker了,温下手

    好久没玩docker了,温下手 安装 Docker Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum 命令: yum i ...

  7. 又见 tomcat启动startup.bat一闪而过

    startup.bat启动的时候,一闪而过,停止, 没有提示信息,错误信息,没有任何log... 后面在 startup.bat. catalina.bat 最后 加入 pause. 也看不到结果.. ...

  8. 关于 HTTP

    HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议).它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说,请求通常是由像浏览器这样的 ...

  9. Android自定义View学习(三)

    属性动画(上) 参考:HenCoder 自定义绘制的第 1-6 期:属性动画 Property Animation(上手篇) Interpolator 其实就是速度设置器,设置动画运行的速度. 属性动 ...

  10. LabelFunction 允许在显示数据以前进行处理

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...