[机器学习] keras:MNIST手写数字体识别(DeepLearning 的 HelloWord程序)
深度学习界的Hello Word程序:MNIST手写数字体识别
learn from(仍然是李宏毅老师《机器学习》课程):http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html
import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.layers import Conv2D, MaxPooling2D, Flatten
from keras.optimizers import SGD, Adam
from keras.utils import np_utils
from keras.datasets import mnist
#定义数据加载、预处理函数
def load_data():
(x_train, y_train), (x_test, y_test) = mnist.load_data()
number = 10000
x_train = x_train[0:number]
y_train = y_train[0:number]
x_train = x_train.reshape(number, 28*28)
x_test = x_test.reshape(x_test.shape[0], 28*28)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
#keras.utils.to_categorical(y, num_classes=None, dtype='float32')
#自动处理成one-hot的numpy数组。y为标签数据,num_classes是一共有几类)
y_train = np_utils.to_categorical(y_train, 10)
y_test = np_utils.to_categorical(y_test, 10)
x_train = x_train/255 #图像数据预处理 标准化
x_test = x_test/255
return (x_train, y_train), (x_test, y_test)
(x_train, y_train), (x_test, y_test) = load_data()
#搭建网络
model = Sequential()
model.add(Dense(input_dim=28*28, units=689, activation='relu'))
model.add(Dense(units=689, activation='relu'))
model.add(Dense(units=10, activation='softmax'))
model.compile(loss='categorical_crossentropy',optimizer=SGD(lr=0.1),metrics=['accuracy'])
#训练走起!
model.fit(x_train, y_train, batch_size=50, epochs=20)
#看train出模型在test data上的表现如何
result = model.evaluate(x_test,y_test)
print('Test Acc:',result[1])
训练量很小,我们就不切GPU训了。效果:
Using TensorFlow backend.
Epoch 1/20
10000/10000 [==============================] - 2s 166us/step - loss: 0.5926 - acc: 0.8301
Epoch 2/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.2686 - acc: 0.9234
Epoch 3/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.2015 - acc: 0.9407
Epoch 4/20
10000/10000 [==============================] - 1s 106us/step - loss: 0.1546 - acc: 0.9568
Epoch 5/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.1238 - acc: 0.9645
Epoch 6/20
10000/10000 [==============================] - 1s 106us/step - loss: 0.0977 - acc: 0.9744
Epoch 7/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.0808 - acc: 0.9790
Epoch 8/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.0638 - acc: 0.9838
Epoch 9/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.0514 - acc: 0.9875
Epoch 10/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.0424 - acc: 0.9905
Epoch 11/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.0331 - acc: 0.9936
Epoch 12/20
10000/10000 [==============================] - 1s 108us/step - loss: 0.0267 - acc: 0.9960
Epoch 13/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.0209 - acc: 0.9972
Epoch 14/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.0177 - acc: 0.9977
Epoch 15/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.0144 - acc: 0.9986
Epoch 16/20
10000/10000 [==============================] - 1s 106us/step - loss: 0.0115 - acc: 0.9993
Epoch 17/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.0102 - acc: 0.9994
Epoch 18/20
10000/10000 [==============================] - 1s 106us/step - loss: 0.0084 - acc: 0.9997
Epoch 19/20
10000/10000 [==============================] - 1s 106us/step - loss: 0.0071 - acc: 0.9998
Epoch 20/20
10000/10000 [==============================] - 1s 107us/step - loss: 0.0064 - acc: 0.9999
10000/10000 [==============================] - 0s 38us/step
Test Acc: 0.9573
[机器学习] keras:MNIST手写数字体识别(DeepLearning 的 HelloWord程序)的更多相关文章
- 【Keras篇】---Keras初始,两种模型构造方法,利用keras实现手写数字体识别
一.前述 Keras 适合快速体验 ,keras的设计是把大量内部运算都隐藏了,用户始终可以用theano或tensorflow的语句来写扩展功能并和keras结合使用. 二.安装 Pip insta ...
- 李宏毅 Keras手写数字集识别(优化篇)
在之前的一章中我们讲到的keras手写数字集的识别中,所使用的loss function为‘mse’,即均方差.那我们如何才能知道所得出的结果是不是overfitting?我们通过运行结果中的trai ...
- 将Mnist手写数字库转化为图片形式 和标签形式
Mnist 数据文件有两种,一种是图片文件,一种是标签文件,那么如何把他们解析出来呢? (1)解析图片文件 可以看出在train-images.idx3-ubyte中,第一个数为32位的整数(魔数,图 ...
- TensorFlow系列专题(六):实战项目Mnist手写数据集识别
欢迎大家关注我们的网站和系列教程:http://panchuang.net/ ,学习更多的机器学习.深度学习的知识! 目录: 导读 MNIST数据集 数据处理 单层隐藏层神经网络的实现 多层隐藏层神经 ...
- 深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识
深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识 在tf第一个例子的时候需要很多预备知识. tf基本知识 香农熵 交叉熵代价函数cross-entropy 卷积神经网络 s ...
- mnist手写数字识别——深度学习入门项目(tensorflow+keras+Sequential模型)
前言 今天记录一下深度学习的另外一个入门项目——<mnist数据集手写数字识别>,这是一个入门必备的学习案例,主要使用了tensorflow下的keras网络结构的Sequential模型 ...
- 深度学习-tensorflow学习笔记(2)-MNIST手写字体识别
深度学习-tensorflow学习笔记(2)-MNIST手写字体识别超级详细版 这是tf入门的第一个例子.minst应该是内置的数据集. 前置知识在学习笔记(1)里面讲过了 这里直接上代码 # -*- ...
- 如何用卷积神经网络CNN识别手写数字集?
前几天用CNN识别手写数字集,后来看到kaggle上有一个比赛是识别手写数字集的,已经进行了一年多了,目前有1179个有效提交,最高的是100%,我做了一下,用keras做的,一开始用最简单的MLP, ...
- tensorflow笔记(四)之MNIST手写识别系列一
tensorflow笔记(四)之MNIST手写识别系列一 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7436310.html ...
随机推荐
- EF实现简单的增删改查
1.在项目中添加ADO.NET实体数据模型: 2.接着根据提示配置数据库连接,配置完毕之后项目中生成了大致如下的内容(EF6.x): 其中TestData.tt中的Consumer,Stores是创建 ...
- Spring配置类深度剖析-总结篇(手绘流程图,可白嫖)
生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...
- 句柄Handle的释放(8)
本篇首先介绍几个与句柄分配与释放密切相关的类,然后重点介绍句柄的释放. 1.HandleArea.Area与Chunk 句柄都是在HandleArea中分配并存储的,类的定义如下: // Thread ...
- Ethical Hacking - Web Penetration Testing(2)
INFORMATION GATHERING IP address. Domain name Info. Technologies used. Other websites on the same se ...
- Redis中的Scan命令踩坑记
1 原本以为自己对redis命令还蛮熟悉的,各种数据模型各种基于redis的骚操作.但是最近在使用redis的scan的命令式却踩了一个坑,顿时发觉自己原来对redis的游标理解的很有限.所以记录下这 ...
- 浅谈6种JS数组遍历方法的区别
本篇文章给大家介绍一下6种JS数组遍历方法:for.foreach.for in.for of.. each. ().each的区别.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. ...
- 深入理解JVM(③)Java的锁优化
前言 从JDK5到JDK6HotSpot虚拟机开发团队花费了大量的资源实现了各种锁优化技术,如适应性自旋(Adaptive Spinning).锁消除(Lock Elimination).锁膨胀(Lo ...
- shell 十三问
经典的Shell十三问 摘选整理自:http://bbs.chinaunix.net/thread-218853-1-1.htmlhttps://github.com/wzb56/13_questio ...
- laravel5.5 安装
环境要求 PHP >= 7.0.0 PHP OpenSSL 扩展 PHP PDO 扩展 PHP Mbstring 扩展 PHP Tokenizer 扩展 PHP XML 扩展 通过 Larave ...
- Vue+ElementUI搭建一个后台管理框架
参考 :https://www.cnblogs.com/taotaozhuanyong/p/11903750.html https://gitee.com/qianhongtang-share/vue ...