1 / 11
文档名称:

N识别手写数字集?.doc

格式:doc   大小:74KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

N识别手写数字集?.doc

上传人:今晚不太方便 2017/8/13 文件大小:74 KB

下载得到文件列表

N识别手写数字集?.doc

文档介绍

文档介绍:N识别手写数字集?
N识别手写数字集,后来看到kaggle上有一个比赛是识别手写数字集的,已经进行了一年多了,目前有1179个有效提交,最高的是100%,我做了一下,用keras做的,一开始用最简单的MLP,%,然后不断改进,%,然而我看到排名第一是100%,心碎= =,于是又改进了一版,现在把最好的结果记录一下,如果提升了再来更新。
手写数字集相信大家应该很熟悉了,这个程序相当于学一门新语言的“Hello World”,或者mapreduce的“WordCount”:)这里就不多做介绍了,简单给大家看一下:
复制代码
1 # Author:Charlotte
2 # Plot mnist dataset
3 from import mnist
4 import as plt
5 # load the MNIST dataset
6 (X_train, y_train), (X_test, y_test) = ()
7 # plot 4 images as gray scale
8 (221)
9 (X_train[0], cmap=('PuBuGn_r'))
10 (222)
11 (X_train[1], cmap=('PuBuGn_r'))
12 (223)
13 (X_train[2], cmap=('PuBuGn_r'))
14 (224)
15 (X_train[3], cmap=('PuBuGn_r'))
16 # show the plot
17 ()
复制代码
图:


N做,因为比较耗时,所以想看看直接用比较简单的算法看能不能得到很好的效果。之前用过机器学****算法跑过一遍,最好的效果是SVM,%(默认参数,未调优),所以这次准备用神经网络做。BaseLine版本用的是MultiLayer Percepton(多层感知机)。这个网络结构比较简单,输入--->隐含--->输出。隐含层采用的rectifier linear unit,输出直接选取的softmax进行多分类。
网络结构:
代码:
复制代码
1 # coding:utf-8
2 # Baseline MLP for MNIST dataset
3 import numpy
4 from import mnist
5 from import Sequential
6 from import Dense
7 from import Dropout
8 from import np_utils
9
10 seed = 7
11 (seed)
12 #加载数据
13 (X_train, y_train), (X_test, y_test) = ()
14
15 num_pixels = [1] * [2]
16 X_train = ([0], num_pixels).astype('float32')
17 X_test = ([0], num_pixels).astype('float32')
18
19 X_train = X_train / 255
20 X_test = X_test / 255
21
22 # 对输出进行one hot编码
23 y_train = (y_train)
24 y_test = (y_test)
25 num_classes = [1]
26
27 # MLP模型
28 def baseline_model():
29 model = Sequent