Mnist数据集训练-手写数字的识别

本文介绍了MNIST手写数字数据集,并详细讲解了LeNet-5模型,该模型在MNIST数据集上取得了约99.2%的正确率。内容包括卷积神经网络(CNN)的工作原理,以及CNN中的卷积层、ReLU层、池化层和全连接层。文章还展示了训练过程及识别结果,强调CPU版本TensorFlow的训练速度较慢。
摘要由CSDN通过智能技术生成

mnist数据集是一套手写体数字的图像数据集,包含60000个训练样本和10,000个测试集,由纽约大学的Yann LeCun等人维护。它包含各种手写数字图片:
在这里插入图片描述
在这里插入图片描述
本次实验我们直接将其下载好放在相应文件夹中,作为图像训练集,同时以minist_train作为图像测试集,用来装测试图像。这两个文件夹里如上图分别装0-9的文件夹,里面装入同类数字。
在这里插入图片描述

1.lenet 5模型

LeNet-5模型是Yann LeCun教授与1998年在论文Gradient-based learning applied to document recognition中提出的,它是第一个成功应用于数字识别问题的卷积神经网络。在MNIST数据集上,LeNet-5模型可以达到大约99.2%的正确率。
在这里插入图片描述
LeNet-5模型一共有7层,其中,1,3,5层为卷积层,2,4层为池化层,6,7层为全连接层。

2.CNN卷积网络

卷积神经网络利用输入是图片的特点,把神经元设计成三个维度 : width, height, depth(注意这个depth不是神经网络的深度,而是用来描述神经元的) 。比如输入的图片大小是 32 × 32 × 3 (rgb),那么输入神经元就也具有 32×32×3 的维度。下面是图解:
在这里插入图片描述
一个卷积神经网络由很多层组成,它们的输入是三维的,输出也是三维的,有的层有参数,有的层不需要参数。卷积神经网络通常包含以下几种层:
1.卷积层(Convolutional layer),卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。
2.线性整流层(Rectified Linear Units layer, ReLU layer),这一层神经的活性化函数(Activation function)使用线性整流(Rectified Linear Units, ReLU)。
3.池化层(Pooling layer),通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。
4.全连接层( Fully-Connected layer), 把所有局部特征结合变成全局特征,用来计算最后每一类的得分。

3.代码及识别结果

对所有训练集训练及对测试图片提取特征点

#coding:utf8
import os 
import cv2 
import numpy as np
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

sess = tf.InteractiveSession()


def getTrain():
    train=[[],[]] # 指定训练集的格式,一维为输入数据,一维为其标签
    # 读取所有训练图像,作
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值