卷积神经网络实现手写数字识别
数据集还是使用的mnist 数据集
首先说一下图片数据的格式:
图片数据有四个参数 shape height width channels
彩色图像: RGB(h,w,3) 灰白(h,w,1) or(h,w,4) e,g png图
conv2d:图片输入的形状:batch,height,width,channels
mnist 的图像数据格式是(60000 * 28 * 28) 因此需要对其进行扩展
train_image = np.expand_dims(train_image, axis=-1)
建立模型
model = keras.Sequential()
model.add(layers.Conv2D(64,(3*3),activation='relu',input_shape=(28,28,1)))
model.add(layers.Conv2D(64,(3*3),activation='relu'))
model.add(layers.MaxPooling2D())
model.add(layers.Flatten())
model.add(layers.Dense(256,activation='relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(10, activation='softmax'))
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['acc']
)
训练模型
model.fit(train_image,train_label,epochs=10,batch_size=512)
PS:神经网络最喜欢归一化后的数据 因此 可以将图片进行归一化
train_image = train_image/255