导入的lib:
import numpy as np
from keras.datasets import mnist #数据包
from keras.utils import np_utils #np帮助类
from keras.models import Sequential #按顺序建立 模型
from keras.layers import Dense,Activation #Dense 全连接层 ; Activation 激活函数层
from keras.optimizers import RMSprop # 优化器 --其中一个 RMSprop
#下载到 ./anaconda3/lib/python3.6/site-packages/keras/datasets #我的python环境是 基于 anaconda3
#下载 失败可以 自己下载搬到 目录中去
#X shape(60000,28,28),y shape(10000,)
(X_train,Y_train),(X_test,Y_test)=mnist.load_data()
x_train=X_train.reshape(X_train.shape[0],-1)/255 # 除以255 让数据 特征标准化 让 数值在 [0~255] 之间
x_test=X_test.reshape(X_test.shape[0],-1)/255 #normalize
y_train=np_utils.to_categorical(Y_train,num_classes=10) #np.utils.to_categorical : 若 y=2 -> [[ 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]]
y_test=np_utils.to_categorical(Y_test,num_classes=10)
model=Sequential([
Dense(32,input_dim=784), #784=28*28
Activation('relu'),
Dense(10),
Activation('softmax'),
])
rmsprop=RMSprop(lr=0.001,rho=0.9,epsilon=1e-08,decay=0.0)
#lr 学习率 ,decay 衰减率
model.compile(optimizer=rmsprop,loss='categorical_crossentropy',metrics=['accuracy']) #指标列表
model.fit(x_train,y_train,epochs=2,batch_size=32) #epochs 训练几回 batch_size 每批训练的数量
#评价
loss,accuracy=model.evaluate(x_test,y_test) #metrics 里面有 accuracy
print(loss)
print(accuracy)