python keras MNIST CNN 数字识别 建立模型训练并评估

'''
python keras MNIST CNN 数字识别 建立模型训练并评估
'''
#载入数据
from keras.datasets import mnist
from keras.utils import to_categorical

(train_images , train_labels),(test_images,test_labels) = mnist.load_data()
train_images = train_images.reshape((60000,28,28,1))
train_images = train_images.astype('float32') / 255
test_images = test_images.reshape((10000,28,28,1))
test_images = test_images.astype('float32') / 255
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)

#建立模型
from keras import layers
from keras import models

model = models.Sequential()
model.add(layers.Conv2D(32,(3,3),activation='relu',input_shape=(28,28,1)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(64,(3,3),activation='relu'))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(64,(3,3),activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64,activation='relu'))
model.add(layers.Dense(10,activation='softmax'))

model.compile(optimizer = 'rmsprop',
              loss = 'categorical_crossentropy',
              metrics=['accuracy']
    )

model.summary()

#进行训练
model.fit(train_images[0:1000],train_labels[0:1000],epochs=5,batch_size=64)
model.save('./MNISTKerasCNNTrainTest.h5')

#在测试数据上对模型进行评估
model = models.load_model('./MNISTKerasCNNTrainTest.h5')
test_loss,test_acc = model.evaluate(test_images[0:1000],test_labels[0:1000])
print('test_acc',test_acc)

 

你可能感兴趣的:(python keras MNIST CNN 数字识别 建立模型训练并评估)