卷积神经网络(CNN)学习笔记
为什么需要卷积神经网络? 全连接神经网络主要存在参数过多不便处理高维数据这两大问题,卷积神经网络是通过 参数共享(卷积核共享),池化降维 来解决上述两个问题。 这个公式很重要,特征图经过卷积之后会是什么维度的数据,全靠它。 最大池化对于纹理特征敏感,均值池化对背景特征敏感。 卷积函数代码跟踪视频理解: 针对不同的输入图片使用不同的卷积核进行卷积并演示其进行卷积后的输出是什么形状,从而把卷积输出公式落实到代码。 池化函数演示跟踪其实也类似,最关键的其实是对tf.reshape(tf.transpose(img), [-1, 16]) 这行代码的理解花费了我一些时间查找其相关API的用法。 另外特别要说明的一点是矩阵数据在TensorFlow中存储和我们正常思维是有区别的如下图所示: 正常思维我们会认为[[1,5],[1,5]]是个特征图,但其实[[1,1],[3,3]]才是特征图,而前面有多少[[[[就表示他是多少维度的数据,如图就是个四维数据。 Cifar图片集分类示例视频 Cifar图片集分类代码的逻辑其实和Mnist多层分类的逻辑是一样的还是哪四步,准备数据,搭建模型,训练模型,使用模型,代码其实就是把卷积函数和池化函数加到了搭建模型中,把原来的全连接层改成了卷积层,学到此处我突然明白 WX+B这个公式为什是深度学习中的通用公式了。 看懂这些代码花了我半天的时间