使用keras实现一个mnist分类程序
时间: 2023-11-05 11:04:41 浏览: 38
好的,下面是使用Keras实现MNIST分类程序的代码:
```python
# 导入相关库
import numpy as np
import keras.datasets.mnist as mnist
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense, Dropout
# 加载数据集
(X_train, y_train), (X_test, y_test) = mnist.load_data()
# 将数据集转换为指定类型
X_train = X_train.reshape(X_train.shape[0], -1).astype('float32') / 255.
X_test = X_test.reshape(X_test.shape[0], -1).astype('float32') / 255.
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(Dense(units=512, input_dim=784, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(units=512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(units=10, activation='softmax'))
# 编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, epochs=20, batch_size=128)
# 评估模型
score = model.evaluate(X_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
```
这个程序使用了keras库来实现MNIST分类。首先,我们使用mnist.load_data()函数来加载MNIST数据集。然后将数据集转换为指定的类型,并对标签进行one-hot编码。接下来,我们建立了一个包含3个全连接层的神经网络。其中前2个层包含了512个神经元和relu激活函数,并添加了0.2的dropout层用于防止过拟合。第3个层包含10个神经元和softmax激活函数,用于输出分类结果。最后,我们编译模型并训练它,最后评估模型的准确性。