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-05-25 22:54:04 发布
该博客介绍了如何使用Keras库构建一个卷积神经网络(CNN)来识别手写数字。首先,从mnist数据集加载数据并进行预处理,包括reshape和归一化。接着,通过one-hot编码处理标签。然后,搭建CNN模型,包含多个卷积层、最大池化层、Dropout层以及全连接层,并使用ReLU激活函数。模型编译选用'categorical_crossentropy'作为损失函数,'adagrad'作为优化器,并在训练集上训练20个周期。最后,模型在测试集上评估其性能。
摘要由CSDN通过智能技术生成