''' 所需环境: python3.6 tensorflow1.2 keras2.0 ''' import numpy as np from keras.datasets import mnist from keras.utils import np_utils from keras.models import Sequential from keras.layers import Dense,Dropout,Convolution2D,MaxPooling2D,Flatten from keras.optimizers import Adam #载入数据 (x_train,y_train),(x_test,y_test) = mnist.load_data() x_train = x_train.reshape(-1,28,28,1)/255.0 x_test = x_test.reshape(-1,28,28,1)/255.0 #换one-hot格式 y_train = np_utils.to_categorical(y_train,num_classes=10) y_test = np_utils.to_categorical(y_test,num_classes=10) model = Sequential() #第一个卷积层 model.add(Convolution2D( input_shape = (28,28,1), filters = 32, kernel_size = 5, strides = 1, padding = 'same', activation='relu' )) #第一个池化层 model.add(MaxPooling2D( pool_size = 2, strides = 2, padding = 'same' )) ##第二个卷积层 model.add(Convolution2D(64,5,strides=1,padding='same',activation='relu')) #第二个池化层 model.add(MaxPooling2D(2,2,'same')) #把第二个池化层的输出扁平化为1维 model.add(Flatten()) #第一个全连接层 model.add(Dense(1024,activation = 'relu')) #Dropout model.add(Dropout(0.5)) #第二个全连接层 model.add(Dense(10,activation = 'softmax')) #定义优化器 adam = Adam(lr=1e-4) model.compile(optimizer=adam,loss='categorical_crossentropy',metrics=['accuracy']) model.fit(x_train,y_train,batch_size=64,epochs=10) loss,accuracy = model.evaluate(x_test,y_test) print('test loss',loss) print('test accuracy',accuracy)
基于CNN的mnist数据集分类
最新推荐文章于 2022-12-07 17:28:04 发布