keras训练minst数据集

1.keras训练minst数据集

  1. 环境keras,jupyter notebook
  2. 加载keras模块
from __future__ import print_function
import numpy as np
np.random.seed(1337)

from keras.datasets import mnist
from keras.models import Sequential
from keras.layers.core import Dense,Dropout,Activation
from keras.optimizers import SGD,Adam,RMSprop
from keras.utils import np_utils
  1. 如需绘制模型请加载plot
from keras.utils.vis_utils import plot_model
  1. 变量初始化
batch_size=128
nb_classes=10
nb_epoch=20
  1. 定义加载数据集函数(keras自带数据集下载不了,被防火墙挡着)
def load_data(path='mnist.npz'):
    """Loads the MNIST dataset
    #Arguments
       path:path where to cache the dataset locally
    #Returns
       Tuple of Numpy arrays:`(x_train,y_train),(x_text,y_text)`
    
    """
    path='.\mnist.npz'
    f=np.load(path)
    x_train,y_train=f['x_train'],f['y_train']
    x_test,y_test=f['x_test'],f['y_test']
    f.close()
    return (x_train,y_train),(x_test,y_test)
  1. 数据准备
(X_train, y_train), (X_test, y_test) =load_data()
X_train = X_train.reshape(60000, 784)
X_test = X_test.reshape(10000, 784)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
X_train /= 255
X_test /= 255
print(X_train.shape[0], 'train samples')
print(X_test.shape[0], 'test samples')
  1. 转换类标号
# convert class vectors to binary class matrices
Y_train = np_utils.to_categorical(y_train, nb_classes)
Y_test = np_utils.to_categorical(y_test, nb_classes)
  1. 建立模型
    #使用Sequential() model = Sequential() model.add(Dense(512, input_shape=(784,))) model.add(Activation('relu')) model.add(Dropout(0.2)) model.add(Dense(512)) model.add(Activation('relu')) model.add(Dropout(0.2)) model.add(Dense(10)) model.add(Activation('softmax'))
  2. 打印模型
model.summary()
  1. 绘制模型结构图,并保存成图片
plot_model(model,to_file='model.png')
  1. 训练与评估
    #编译模型 model.compile(loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy'])

  2. #迭代训练

history = model.fit(X_train, Y_train,
                    batch_size=batch_size, nb_epoch=nb_epoch,
                    verbose=1, validation_data=(X_test, Y_test))`
  1. 模型评估
score = model.evaluate(X_test, Y_test, verbose=0)
print('Test score:', score[0])
print('Test accuracy:', score[1])
  1. 模型保存
model.save('mnist-mpl.h5')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值