Lintcode题目
数字图像识别 给一张图片,图片里面写了一个数字可能是0-9,然后需要设计算法判断出这个数字是0-9中哪一个数字。软件:pycharm
框架:keras
网络:LeNet
输入,输出格式:.cvs文件
用keras框架实现手写数字识别
前言
人工智能入门项目,初学者练手,了解神经网络的搭建,见识经典的网络结构
一、经典网络LeNet5
Gradient based learning applied to document recognition
1.介绍论文里的LeNet5神经网络

LeNet5一共有八层,分别是:
①输入层:输入手写体是32*32像素的图片。
②卷积层C1:卷积层是用于提取特征,6个特征平面,大小是 28 ∗ 28 28*28 28∗28,因为是用的 5 ∗ 5 5*5 5∗5的卷积核来提取输入层的特征, 28 = 32 − 5 + 1 28=32-5+1 28=32−5+1。一共有 ( 5 ∗ 5 + 1 ) ∗ 28 ∗ 28 ∗ 6 = 122304 (5*5+1)*28*28*6=122304 (5∗5+1)∗28∗28∗6=122304 条连接,利用权值共享,所以这层有 ( 5 ∗ 5 + 1 ) ∗ 6 = 156 (5*5+1)*6=156 (5∗5+1)∗6=156权值需要训练。
③池化层S2:池化是为了降低数据维度。选取一定范围(下图选的 2 ∗ 2 2*2 2∗2)对范围内的数求和取平均,再加上一个权值和偏置得到结果。S2有6个特征平面,每个特征平面格式 14 ∗ 14 14*14 14∗14。

④卷积层C3:16个特征平面,从前面的6个池化平面到16个特征平面,16个特征平面每个都对应多个池化层的采样数据。

卷积核是 5 ∗ 5 5*5 5

本文介绍了使用keras实现经典LeNet5网络进行手写数字识别的过程,包括网络结构、数据预处理、训练与输出转换。涉及CSV文件到神经网络输入的转换,以及LeNet5的卷积、池化层等关键部分。
最低0.47元/天 解锁文章
1361

被折叠的 条评论
为什么被折叠?



