python数字识别库_OpenCV3-Python下ANN进行MNIST数字识别

1. MNIST数据库

MNIST数据库是Web上非常流行的OCR和手写字符识别分类器的训练资源。

下载mnist.pkl.gz数据集,并将其放置到与.py文件同级目录下。

2. 初始化参数

(1)输入层

由于采用MNIST数据库,它里面的每幅图像大小为28x28像素,即784像素,因此输入层有784个输入节点。

(2)隐藏层

隐藏层大小没有固定,通过多次尝试发现,在训练数据量不大的情况下,50-60个节点可得到最好结果。

(3)输出层

输出层为0-9的数字,共10个节点。

3. 封装ANN库

为了尽可能自行执行,此处建立了一个迷你库,用来封装ANN到OpenCV中的原始实现。

注意:pickle是MNIST数据库序列化库,需要提前确保已安装。

digits_ann.py内容如下:import cv2

import pickle

import numpy as np

import gzip

"""OpenCV ANN Handwritten digit recognition example

Wraps OpenCV's own ANN by automating the loading of data and supplying default paramters,

such as 20 hidden layers, 10000 samples and 1 training epoch.

The load data code is taken from http://neuralnetworksanddeeplearning.com

你可能感兴趣的:(python数字识别库)