lenet-5模式是卷积神经网络的经典模型,它的结构如下:
第一层,卷积层
输入为原始图像,大小为32*32*1,一个个卷积层过滤器尺寸为5x5,深度为6,不使用全零填充,步长为1.因此输出尺寸为28,深度为6。
第二层,池化层
输入为第一层的输出,是28*28*6的矩阵,本层过滤器大小2x2,长宽步长均为2,输出大小为14x14x6.
第三层,卷积层
输入为14x14x6,使用过滤器大小5x5,深度为16,本层不使用全零填充,步长为1,输出矩阵大小为10x10x16.
第四次,池化层
输入矩阵大小10x10x16,过滤器大小2x2,步长为2,本层输出5x5x16.
第五层,卷积层
输入矩阵5x5x16,因为过滤器大小也是5x5,其实和全连接层没有区别,之后的tensorflow程序中也会将这层看成全连接层,本层输出节点个数120个。
第六次,全连接层
输入节点个数120,输出节点个数84个
第七层,全连接层
输入节点84个,输出节点个数10个。
代码如下,由于mnist的手写数字输入是28*28*1,所以做了一点修改,第一个卷积层使用的全0填充,这样就是的输出是28*28*6.
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import os
import numpy as np
from tensorflow.contrib.factorization.examples.mnist import fill_feed_dict
from CNN.LeNet5_infernece import CONV1_SIZE, NUM_CHANNELS, CONV1_DEEP
INPUT_NODE=784
OUTPUT_