背景

lenet5网络源自于Yann LeCun的论文“Gradient-Based Learning Applied to Document Recognition” ,起初被应用于银行支票的手写符号识别,经调整后对广泛应用于手写数字的识别

 

网络结构

常用的对minst数据集进行识别的lenet5网络结构如下

lenet5 结构 及 pytorch、tensorflow、keras(tf)、paddle实现

在网上查询过程中发现对lenet5有 3卷积2连接、2卷积3连接两种,版本,在原始论文中为3卷积2池化,因为没有填充,卷积后特征尺寸变为1*1:

lenet5 结构 及 pytorch、tensorflow、keras(tf)、paddle实现

 

input layer: 32*32*1 images

conv1 layer: 5*5*6 conv kernels(no bias)     28*28*6 output(32 + 0 - 5 + 1 = 28)

                 或 3*3*6 conv kernels(no bias)    28*28*6 output (30 + 0 - 3 + 1 = 28)

pool1 layer: 2*2, 2 maxpool(no bias)            14*14*6 output( (28 + 0) / 2 )

conv2 layer:  5*5*16 conv kernels(no bias)   10*10*16 output(14 + 0 - 5 + 1 = 10)

pool2 layer: 2*2, 2 maxpool(no bias)             5*5*16 output( (10 + 0) / 2 )

conv3 layer:  5*5*120 conv kernels(no bias)  1*1*120output(5 + 0 - 5 + 1 = 5)

fc1 layer: 84 output(5*5*120 --> 84)

fc2 layer: 10 output(84 --> 10)

 

代码:

pytorch实现

tensorflow实现

keras实现

paddle实现

 

注:

本人环境win10,python3.6 64bit

所需数据:测试数据pic(内含10张minst图片)

mnist数据集为28*28*1,为方便:

      torch:上下左右  填充2圈,变为32*32*1

      tensorflw:上下左右  填充1圈,变为30*30*1,第一次使用尺寸3*3卷积核