import numpy as np
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Conv2D,MaxPooling2D,Dropout,Flatten,Dense
(X_train,y_train),(X_test,y_test) = mnist.load_data() #加载数据
X_train = X_train.reshape(X_train.shape[0],28,28,1).astype('float32')
X_test = X_test.reshape(X_test.shape[0],28,28,1).astype('float32')
X_train/= 255 #由于每个像素是介于0~255的 所以除以255
X_test/=255
def tran_y(y):#手动实现one-hot编码
y_ohe = np.zeros(10)
y_ohe[y] = 1
return y_ohe
y_train = np.array([
tran_y(y_train[tmp]) for tmp in range(len(y_train)) #实现对label的one-hot编码
])
y_test = np.array([
tran_y(y_test[i]) for i in range(len(y_test))
])
#开始搭建卷积神经网络
model = Sequential()
#添加一层卷积层,构建64个filter
model.add(
Conv2D(
filters=64,
kernel_size=(3,3),
strides=(1,1),
padding = 'same',
input_shape=(28,28
Keras实现手写数字识别
最新推荐文章于 2024-11-23 15:06:09 发布

该博客介绍了如何使用Keras库构建一个卷积神经网络(CNN)来识别手写数字。首先,从mnist数据集加载数据并进行预处理,包括reshape和归一化。接着,通过one-hot编码处理标签。然后,搭建CNN模型,包含多个卷积层、最大池化层、Dropout层以及全连接层,并使用ReLU激活函数。模型编译选用'categorical_crossentropy'作为损失函数,'adagrad'作为优化器,并在训练集上训练20个周期。最后,模型在测试集上评估其性能。
最低0.47元/天 解锁文章

1150

被折叠的 条评论
为什么被折叠?



