Kaggle Digit Recognizer使用keras实现手写数字识别 A1
来源:互联网 发布:淘宝靠谱的阿迪代购 编辑:程序博客网 时间:2024/05/03 04:23
1、Kaggle的Digit Recognizer竞赛
地址:https://www.kaggle.com/c/digit-recognizer
自己获取数据集train.csv和test.csv:https://www.kaggle.com/c/digit-recognizer/data
2、可以使用ipython notebook交互式变成环境进行,也可以使用其他python环境。这里使用的是ipython notebook,注意数据集的文件路径。使用深度学习框架keras实现手写数字识别。
代码:
import pandas as pdimport numpy as npfrom keras.utils.np_utils import to_categoricalfrom keras import backend as K
运行,显示出Using Theano backend.
我这里使用的Theano作后端,也可使用Tensorflow作后端。更改方法参见keras官方教程或中文文档教程。
K.set_image_dim_ordering('th') #input shape: (channels, height, width)train_df = pd.read_csv("../input/train.csv")valid_df = pd.read_csv("../input/test.csv")x_train=train_df.drop(['label'],axis=1).values.astype('float32')Y_train = train_df['label'].valuesx_valid = valid_df.values.astype('float32')
g_height = 28, 28n_train = x_train.shape[0]n_valid = x_valid.shape[0]n_classes = 10x_train = x_train.reshape(n_train,1,img_width,img_height) x_valid = x_valid.reshape(n_valid,1,img_width,img_height) x_train = x_train/255 #normalize from [0,255] to [0,1] x_valid = x_valid/255
运行上述代码。
%matplotlib inlineimport matplotlib.pyplot as pltimgplot = plt.imshow(X_train[4,0,:,:,],cmap='gray_r')
运行上述代码,会输出显示:
from keras.utils import np_utils nb_classes = np.max(Y_train) + 1print nb_classesy_train = np_utils.to_categorical(Y_train, nb_classes)
运行上述代码。输出打印得到10。
from keras.models import Sequentialfrom keras.layers.convolutional import *from keras.layers.core import Dropout, Dense, Flatten, Activationn_filters = 64filter_size1 = 3filter_size2 = 2pool_size1 = 3pool_size2 = 1n_dense = 128model = Sequential()model.add(Convolution2D(n_filters, filter_size1, filter_size1, batch_input_shape=(Nomodel.add(MaxPooling2D(pool_size=(pool_size1, pool_size1)))model.add(Convolution2D(n_filters, filter_size2, filter_size2, activation='relu', bomodel.add(MaxPooling2D(pool_size=(pool_size2, pool_size2)))model.add(Dropout(0.25))model.add(Flatten())model.add(Dense(n_dense))model.add(Activation('relu'))model.add(Dropout(0.5))model.add(Dense(n_classes))model.add(Activation('softmax'))model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy']
batch_size = 128n_epochs = 1model.fit(x_train, y_train, batch_size=batch_size, nb_epoch=n_epochs,verbose=2, validation_split=.2)
Train on 33600 samples, validate on 8400 samples
Epoch 1/1
56s - loss: 0.4190 - acc: 0.8713 - val_loss: 0.0968 - val_acc: 0.9705
Out[31]:
yPred=model.predict_classes(x_valid,batch_size=32,verbose=1)np.savetxt('mnist_output.csv',np.c_[range(1,len(yPred)+1),yPred], delimiter=',', header = 'ImageId,Label', comments = '', fmt='%d')
28000/28000 [==============================] - 15s
得到提交文件mnist_output.csv,进入提交界面,https://www.kaggle.com/c/digit-recognizer/submit,将mnist_output.csv提交上去,得到score。
也可以看到自己的排名。
0 0
- Kaggle Digit Recognizer使用keras实现手写数字识别 A1
- kaggle Digit Recognizer 数字识别
- Kaggle Digit Recognizer 基于sklearn实现的手写数字识别 for MNIST data
- Kaggle入门模板:以手写识别Digit Recognizer为例
- kaggle-Digit Recognition(手写数字识别)
- 数字识别[Digit Recognizer](https://www.kaggle.com/c/digit-recognizer)
- 转: Kaggle入门模板:以手写识别Digit Recognizer为例
- Digit Recognizer (Kaggle)
- Kaggle | Digit Recognizer
- Kaggle入门:Digit Recognizer
- Kaggle入门:Digit Recognizer
- kaggle | Digit Recognizer
- keras 入门 --手写数字识别
- Kaggle练习赛-digit recognizer-kNN解法全部实现步骤
- Kaggle项目Digit Recognizer实现(一):三层卷积神经网络
- Kaggle项目Digit Recognizer实现(二):caffe by python
- Kaggle—Digit Recognizer竞赛
- Digit Recognizer Kaggle 竞赛系列
- 激活函数(Activation Functions)
- 用wireshark抓包分析
- Linux学习笔记——例说makefile 头文件查找路径
- OkHttp getand post 请求
- 图的基本介绍
- Kaggle Digit Recognizer使用keras实现手写数字识别 A1
- iOS近场通信
- Android之实现闹钟
- git 笔记
- Hadoop机架感知配置
- PRM方式安装MySQL Community 5.7.17
- MVP模式使用心得
- JAVA反射技术
- nginx-1.11.10 在Linux服务器下的安装完整步骤