跳到主要内容

卷积神经网络介绍

什么是卷积

这个最简单的卷积神经网络说到底,终究是起到一个分类器的作用。
卷积层负责提取特征,采样层负责特征选择,全连接层负责分类。
卷积层的作为是做特征提取。每个kernel代表一个滤波器。卷积的过程为: 输入:图片个数,图片高度,图片宽度,图片通道数
输出:特征图,也就是通常叫的feature map
padding:每次卷积,图像都缩小,这样卷不了几次就没了; - 相比于图片中间的点,图片边缘的点在卷积中被计算的次数很少。这样的话,边缘的信息就易于丢失。为了解决这个问题,我们可以采用padding的方法。我们每次卷积前,先给图片周围都补一圈空白,让卷积之后图片跟原来一样大,同时,原来的边缘也被计算了更多次。通常使用补0的方式填充。 案例

要解决的问题

本次我们依然解决MNIST数据集的问题,想了解详情请参考(https://www.yuque.com/suanpan_doc/public/wvt1ce)。 image.png

解决方案

本次依然使用上次算盘模板中的实现方式,从模板创建之后方便你对模型结构参数进行修改。

模板

在项目模板中,双击keras教材案例中的卷积网络介绍: image.png可以创建出以下模板,模板中的组件可以在深度学习的pytorch的分类中找到: image.png可以看出整个模板分了四块:

  • 模型建立——需要有一个输入层,注意填写接收图片的大小与通道数,后面连接Conv2D,Maxpooling,RELU激活函数,Linear等网络层
  • 数据载入——需要RAW-MNIST组件下载MNIST原始数据,图片转Tensor可以将图片格式转换为模型可计算的Tensor数据类型,最后接手写数字识别数据集组件用来解析原始MNIST文件
  • 模型训练——数据载入设置Batch Size,选择RMSprop作为参数寻优器,模型训练节点设置epoch数与Loss Function,最终生成训练好的模型文件
  • 图片可视化——Tensor转图片可以将生成好的Tensor数据转换为图片保存,最终生成在转换组合组件的输出节点中。
  • 预测评估——该模板没有包含模型预测评估的模块,你可以参照上个案例中所示添加相应的组件对于你的模型进行评价。

这样就实现了一个简单的神经网络模型,你可以对其中的网络结构进行重新编辑,验证你的算法!