手写体

Python手写体数字识别,数学公式和程序对应详解

落花浮王杯 提交于 2020-03-01 13:11:30
Python手写体数字识别,数学公式和程序对应详解 一、数学推导过程 特别详细的数学推导过程,简单易懂。 二程序代码 特别好的程序结构,值得学习 三、代码和公式对应 大家一定要先自己看看数学推导过程,代码都可以不看。但是推导过程一定得看。 1.BP算法四个核心公式 参数列表 x = np . array ( x ) y = np . array ( y ) weights = [ ] # 权重列表 bias = [ ] # 偏置列表 其中x为输入变量,y为输出变量 x为33555个样本值,一个x有784个变量相当于[x 1 ,x 2 ,x 3 ,…,x 784 ] y也为33555个样本值,一个y有一个输出对应于0-9中的一个数字 weights为权重,bias为偏置 类似于 y = ax+b ,a相当于weight,bias相当于b。 weights为权重,从上面的图片中看出有2 elements,分别对应第一层(输入层)->第二层(隐藏层),第二层(隐藏层)->第三层(输出层),由此可知这是一个具有三层感知层的神经网络。 注:weight,bias,都是随机初始化的。例如 layers = [ 784 , 784 , 10 ] for i in range ( 1 , len ( layers ) ) : # 正态分布初始化 self . weights . append (

Tensorflow学习实战之mnist手写体识别

三世轮回 提交于 2020-02-19 07:10:32
Tensorflow学习实战之mnist手写体识别 数据准备 构建模型 训练模型 评估结果 可视化显示 Tensorflow继续学习,今天是入门级的mnist手写体识别,改变前两次的线性回归,这次是逻辑回归,这样随之改变的是损失函数等 Tensorflow里面有一个examples的MNIST的手写,直接运行会自动下载。 训练了20次,效果还不错,慢慢的理解,把以前不懂得好多东西,学习中慢慢得到补充 收获: reshape,行优先,逐行排列,相当于把一整行数字排列后按reshape得行列填充进去,我的理解相当于图像里得resize one hot独热编码,一个为1,其余所有为0,适用于分类任务,是一种稀疏向量,扩展到欧氏空间更适用于分类任务,使用one-hot得优势很明显,1-3和8-3,更相似于3,如果不使用one-hot而直接使用1-9编码,1-3更加相似,不符合 通过argmax可以把独热编码中得最大值取出来,即把标签得出 训练-》验证,验证通过后,到最后用测试集进行测试 Sigmod函数更适应于逻辑回归 Softmax函数可以延伸至多分类,但多分类相加为1 损失函数使用的是交叉熵,相当于两个概率分布之间的距离 先上图结果图: 数据准备 import tensorflow as tf import matplotlib . pyplot as plt import numpy

mnist手写体识别

拜拜、爱过 提交于 2020-02-17 14:36:50
MNIST数据集是NIST的子集,包含了60000张图片为训练数据,10000张作为测试数据,其中包含了训练数据与测试数据的图片及答案,每项图片的大小为28×28,数字都出现在图片的正中间。 而TensorFlow提供了一个类处理MNIST,将图片解析成需要的格式: from tensorflow . examples . tutorials . mnist import input_data # 载入数据集 mnist = input_data . read_data_sets ( "E:/minst" , one_hot = True ) print ( "training datasize:" , mnist . train . num_examples ) print ( "validating data size:" , mnist . validation . num_examples ) print ( "testing data size:" , mnist . test . num_examples ) print ( "Example training data: " , mnist . train . images [ 0 ] ) print ( "Example training data label: " , mnist . train . labels

python 手写体数字识别

给你一囗甜甜゛ 提交于 2020-01-16 10:16:32
from os import listdir from numpy import * import time import operator def classify(inputPoint,dataSet,labels,k): dataSetSize = dataSet.shape[0] #已知分类的数据集(训练集)的行数 #先tile函数将输入点拓展成与训练集相同维数的矩阵,再计算欧氏距离 diffMat = tile(inputPoint,(dataSetSize,1))-dataSet #样本与训练集的差值矩阵 sqDiffMat = diffMat ** 2 #差值矩阵平方 sqDistances = sqDiffMat.sum(axis=1) #计算每一行上元素的和 distances = sqDistances ** 0.5 #开方得到欧拉距离矩阵 sortedDistIndicies = distances.argsort() #按distances中元素进行升序排序后得到的对应下标的列表 #选择距离最小的k个点 classCount = {} for i in range(k): voteIlabel = labels[ sortedDistIndicies ] classCount[voteIlabel] = classCount.get(voteIlabel,0

手写体识别——Knn算法和logistic算法

做~自己de王妃 提交于 2020-01-09 01:03:22
手写体识别——Knn算法和logistic算法 Knn算法 导入手写体数据 from sklearn . datasets import load_digits ldg = load_digits ( ) ldg {'data': array([[ 0., 0., 5., ..., 0., 0., 0.], [ 0., 0., 0., ..., 10., 0., 0.], [ 0., 0., 0., ..., 16., 9., 0.], ..., [ 0., 0., 1., ..., 6., 0., 0.], [ 0., 0., 2., ..., 12., 0., 0.], [ 0., 0., 10., ..., 12., 1., 0.]]), 'target': array([0, 1, 2, ..., 8, 9, 8]), 'target_names': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 'images': array([[[ 0., 0., 5., ..., 1., 0., 0.], [ 0., 0., 13., ..., 15., 5., 0.], [ 0., 3., 15., ..., 11., 8., 0.], ..., [ 0., 4., 11., ..., 12., 7., 0.], [ 0., 2., 14., ...,

OCR技术(光学字符识别)

。_饼干妹妹 提交于 2019-12-26 14:08:02
什么是OCR? OCR英文全称是optical character recognition,中文叫光学字符识别。它是利用光学技术和计算机技术把印在或者写在纸上的 文字读取出来,并转换成一种计算机能够接受、人又可以理解的格式。文字识别是计算机视觉研究领域的分支之一, 而且这个课题已经是比较成熟了,并且在商业中已经有很多落地项目了。 比如汉王OCR,百度OCR,阿里OCR等等,很多企业 都有能力都是拿OCR技术开始挣钱了。其实我们自己也能感受到,OCR技术确实也在改变着我们的生活:比如一个手机APP 就能帮忙扫描名片、身份证,并识别出里面的信息;汽车进入停车场、收费站都不要人工登记了,都是用车牌识别技术; 我们看书时看到不懂的题,那个手机一扫,APP就能在网上帮你找到这题的答案。太多太多的应用了,OCR的应用在当今时代确实是百花齐放。 OCR的分类 如果要给OCR进行分类,我觉得可以分为两类:手写识别和印刷体识别。这两个可以认为是OCR领域两个大主题了,当然 印刷识别较手写体识别要简单得多,我们也能从直观上理解 印刷体大多都是规则的字体,因为这些字体都是计算机自己生成再通过打印技术印刷到纸上。在印刷体的识别上有其独特的干扰; 在印刷过程中字体很可能变得断裂或者墨水粘连,使得OCR识别异常困难。 当然这些都可以通过一些图像处理的技术帮他尽可能的还原,进而提高识别率。 总的来说

手写体识别

我们两清 提交于 2019-12-10 00:50:24
简介 手写体识别相当于神经网络中的Hello World. 参考链接 https://www.bilibili.com/video/av18671089 bilibili Up主 https://github.com/zkysunny/tensorflow/blob/master/Test_tensorflow.py 代码链接 Tips 由于是2018年的视频 sudo pip3 install tensorflow==1.4 才能比较顺利跑起来 来源: https://www.cnblogs.com/eat-too-much/p/12013429.html

tensorflow学习——DCGAN手写体生成

左心房为你撑大大i 提交于 2019-12-05 10:32:48
import numpy as np import tensorflow as tf import pickle import matplotlib.pyplot as plt print( "TensorFlow Version: {}" .format(tf.__version__)) from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets( 'MNIST_data/' ) # ## Train # 定义参数 batch_size = 64 noise_size = 100 epochs = 5 n_samples = 25 learning_rate = 0.001 beta1 = 0.4 class DCGAN () : @staticmethod def get_inputs (noise_dim, image_height, image_width, image_depth) : inputs_real = tf.placeholder(tf.float32, [ None , image_height, image_width, image_depth], name= 'inputs_real' ) inputs_noise = tf

运行手写体数字识别例程

夙愿已清 提交于 2019-12-05 09:06:54
1.MNIST数据集 (Mixed National Institute of Standards and Technology)是一个大型的手写体数字数据库,广泛用于机器学习领域的训练和测试。包括60000个训练集和10000个测试集,每张图进行尺寸归一化,数字居中处理,固定尺寸为28*28px。 1.1下载MNIST数据集 cd caffe cd data/mnist/ ./get_mnist.sh tree(如果没有要安装sudo apt install tree) 1.2MNIST数据格式描述 1.3转换格式 下载到的原始数据集为二进制文件,需要转换为LEVELDB或LMDB才能识别。 在caffe根目录下执行./examples/mnist/create_mnist.sh 可以看到examples/mnist下有两个目录 2 LeNet5模型 2.1模型描述 examples/minist/lenet_train_test.prototxt查看 数据源mnist负责从预处理得到的lmdb数据库中读取数据data和标签书label,图像数据送入后续CNN结构中进行处理,CNN结构包括一组由卷积层conv(1,2)+下采样层pool(1,2)交替形成的特征层ip1和ip2(类似于多层感知器结构)。对ip2的输出进一步同标签数据label对比

mnist手写体识别

拟墨画扇 提交于 2019-12-05 09:05:33
下载数据集 download.py # coding:utf-8 # 从tensorflow.examples.tutorials.mnist引入模块。这是TensorFlow为了教学MNIST而提前编制的程序 from tensorflow .examples .tutorials .mnist import input_data # 从MNIST_data/中读取MNIST数据。这条语句在数据不存在时,会自动执行下载 mnist = input_data .read _data_sets( "MNIST_data/" , one_hot=True) # 查看训练数据的大小 print(mnist .train .images .shape ) # (55000, 784) print(mnist .train .labels .shape ) # (55000, 10) # 查看验证数据的大小 print(mnist .validation .images .shape ) # (5000, 784) print(mnist .validation .labels .shape ) # (5000, 10) # 查看测试数据的大小 print(mnist .test .images .shape ) # (10000, 784) print(mnist .test