在这节的内容中,我们用之前讲述的内容来搭建一个比较简单的卷积神经网络,实现MNIST手写数字体数据集的图片分类。
我们给出本次实验的CNN网络参数配置如下:
原始数据:输入为[28,28],输出为[1,10]
卷积核1:[5,5],32个特征 -->282832
池化核1:[2,2],最大池化 -->141432
卷积核2:[5,5],2个特征 -->141464
池化核2:[2,2],最大池化 -->7764
全连接1:[7764,1024]
全连接2:[1024,10]
输出: [1,1,10]
首先我们载入MNIST数据集,设置批处理大小,one_hot指的是独热码的编码(encoding)形式,有关于独热编码大家可以自己搜索下相关内容。
下面是定义初始卷积层函数和池化层函数,卷积层的输入是我们的图片大小,由于利用了填充,所以最后输出的还是原来的图片大小,28x28,只不过图片的通道数变大了,成了32,我们可以理解为图片的横截面变”厚”了;然后经过一层池化层的时候,图片大小成了14x14的;再经过第二次卷积层的时候,跟第一层的原理一样,图片的长宽不变,厚度增加,再经过第二次池化层的时候,图片的大小