Keras入门mnist_mlp.py
来源:互联网 发布:nba2k17mc捏脸数据 编辑:程序博客网 时间:2024/06/02 02:42
from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation from keras.optimizers import SGD from keras.datasets import mnist import numpymodel = Sequential() model.add(Dense(784, 500, init='glorot_uniform')) # 输入层,28*28=784 model.add(Activation('tanh')) # 激活函数是tanh model.add(Dropout(0.5)) # 采用50%的dropoutmodel.add(Dense(500, 500, init='glorot_uniform')) # 隐层节点500个 model.add(Activation('tanh')) model.add(Dropout(0.5))model.add(Dense(500, 10, init='glorot_uniform')) # 输出结果是10个类别,所以维度是10 model.add(Activation('softmax')) # 最后一层用softmaxsgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) # 设定学习率(lr)等参数 model.compile(loss='categorical_crossentropy', optimizer=sgd, class_mode='categorical') # 使用交叉熵作为loss函数(X_train, y_train), (X_test, y_test) = mnist.load_data() # 使用Keras自带的mnist工具读取数据(第一次需要联网)X_train = X_train.reshape(X_train.shape[0], X_train.shape[1] * X_train.shape[2]) # 由于mist的输入数据维度是(num, 28, 28),这里需要把后面的维度直接拼起来变成784维 X_test = X_test.reshape(X_test.shape[0], X_test.shape[1] * X_test.shape[2]) Y_train = (numpy.arange(10) == y_train[:, None]).astype(int) # 参考上一篇文章,这里需要把index转换成一个one hot的矩阵 Y_test = (numpy.arange(10) == y_test[:, None]).astype(int)# 开始训练,这里参数比较多。batch_size就是batch_size,nb_epoch就是最多迭代的次数, shuffle就是是否把数据随机打乱之后再进行训练# verbose是屏显模式,官方这么说的:verbose: 0 for no logging to stdout, 1 for progress bar logging, 2 for one log line per epoch.# 就是说0是不屏显,1是显示一个进度条,2是每个epoch都显示一行数据# show_accuracy就是显示每次迭代后的正确率# validation_split就是拿出百分之多少用来做交叉验证model.fit(X_train, Y_train, batch_size=200, nb_epoch=100, shuffle=True, verbose=1, show_accuracy=True, validation_split=0.3) print 'test set' model.evaluate(X_test, Y_test, batch_size=200, show_accuracy=True, verbose=1)
输出:--------------------------------------------------------------ssh://shibotian@***.***.***.***:22/usr/bin/python -u /usr/local/shared_dir/local/ipython_shibotian/shibotian/code/kreas_test1/run.py Using gpu device 0: Tesla K40m Train on 42000 samples, validate on 18000 samples Epoch 0 0/42000 [==============================] - 1s - loss: 0.9894 - acc.: 0.7386 - val. loss: 0.4795 - val. acc.: 0.8807 Epoch 1 0/42000 [==============================] - 1s - loss: 0.5635 - acc.: 0.8360 - val. loss: 0.4084 - val. acc.: 0.8889省略。。。。。Epoch 98 0/42000 [==============================] - 1s - loss: 0.2838 - acc.: 0.9116 - val. loss: 0.1872 - val. acc.: 0.9418 Epoch 99 0/42000 [==============================] - 1s - loss: 0.2740 - acc.: 0.9163 - val. loss: 0.1842 - val. acc.: 0.9434 test set 0/10000 [==============================] - 0s - loss: 0.1712 - acc.: 0.9480 Process finished with exit code 0
阅读全文
0 0
- Keras入门mnist_mlp.py
- keras第一个例程mnist_mlp.py解读
- 运行keras mnist_mlp.py错误解决
- keras入门
- keras入门
- keras imdb.py源码错误
- Keras 例程lmdb_lstm.py理解
- 运行Keras例子程序:imdb_cnn.py
- Keras的入门
- keras入门(一)
- keras深度学习入门
- Keras学习笔记:Chapter1-Keras入门
- Web.py 入门例程
- web.py数据库入门
- web.py入门纪要
- web.py数据库入门
- web.py入门
- TensorFlow入门 fully_connected_feed.py
- 2017.8.7测试 题三 机器选择
- tensorflow 学习笔记7 普通神经网络实现mnist手写识别
- Java web学习笔记之Java bean
- 程序环境和预处理C语言(三)
- Android异步消息机制和AsyncTask接口的使用 [学习笔记]
- Keras入门mnist_mlp.py
- FileInputStream--文件输入流
- Git命令笔记
- Activiti流程图进度查看
- KMP算法详解
- mybatis 详解(十一)------ mybatis和spring整合
- HTML:Getting Tabular
- BZOJ3514(LCT+可持久化线段树)
- Android Studio 3.0 Canary 8无法安装apk到小米手机