典型的卷积神经网络。
一、数据的预处理
- Keras傻瓜式读取数据:自动下载,自动解压,自动加载。
- # X_train:
array([[[[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]]],
...,
[[[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]]]], dtype=float32)
- # y_train:
array([5, 0, 4, ..., 5, 6, 8], dtype=uint8)
但需要二值化作为output:np_utils.to_categorical(y_train, nb_classes)
- # Y_train:
Y_train[0]
Out[56]: array([ 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.])
Y_train[1]
Out[57]: array([ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
Y_train[2]
Out[58]: array([ 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.])
Code: 图片--> Matrix
#coding:utf-8 import os from PIL import Image import numpy as np #读取文件夹mnist下的42000张图片,图片为灰度图,所以为1通道, #如果是将彩色图作为输入,则将1替换为3,并且data[i,:,:,:] = arr改为data[i,:,:,:] = [arr[:,:,0],arr[:,:,1],arr[:,:,2]] def load_data(): data = np.empty((42000,1,28,28),dtype="float32") label = np.empty((42000,),dtype="uint8") imgs = os.listdir("./mnist") num = len(imgs) for i in range(num): img = Image.open("./mnist/"+imgs[i]) arr = np.asarray(img,dtype="float32") data[i,:,:,:] = arr label[i] = int(imgs[i].split('.')[0]) return data,label