StudyAI上MatConvNet框架学习笔记之:框架详解

来源:互联网 发布:第三方支付系统源码 编辑:程序博客网 时间:2024/06/07 11:47

一、封装器

在MatConvNet框架中有2种封装器,分别对应两种不同的神经网络结构。封装器Wrapper是网络构建的基础之一。主要有SimpleNN和DagNN两种,结构如下:
框架封装器
两种封装器的区别:
. SimpleNN:用于构建简单网络,面向对象的编程。
. DagNN:有向无环图,可以实现更高级的功能和机制。
区别: 信息流的控制机制不同

二、计算模块

在MatConvNet的官网上可以查看所有的CNN的计算模块单元,主要有:
框架计算模块
在官网上可以查看每个版本新添加的和所有的计算模块,有每个模块的详细解释:
这里写图片描述
封装器文件位置: 工程目录-> Matlab->simplenn->simplenn.m文件, 在simplenn.m文件中可以查看所有计算模块的注释和讲解:
这里写图片描述

三、数据几何结构

3.1注意

. 在Matlab编程中数据都是以矩阵的形式存在的。
. 在这个框架中,图像是以四维矩阵的形式存在的,分别是图像高度、宽度、通道数和图像数目,卷积核的一维对应上层图像的一维,分别卷积,最后每维的结果相加
. 注意一点:单个卷积核都是三维的卷积核,分别为卷积核的长度、宽度以及维度,卷积核的维度与上一层的图像维度要一致,一个卷积核对应一个偏置,偏置的个数和卷积核的个数相同
. 池化层仅仅改变图像的宽高,不改变图像的通道数。

3.2结构图

结构图如下:pad参数为图像卷积的边缘填充方式,一般设置为0,不做任何填充,注意下面计算公式中的b和d参数为pad填充的参数,一般都是设置为0
这里写图片描述

四、CNN计算流程

需要注意一点:在实际的梯度下降中有一个重要的参数batchsize,意义为每次批量读取这个数目的图像数据积累误差进行参数更新。迭代一次是指将所有的样本全部过一遍
这里写图片描述

原创粉丝点击