cnn

xiaoxiao2021-02-27  466

deepLearnToolbox-master是一个深度学习matlab包,里面含有很多机器学习算法,如卷积神经网络CNN,深度信念网络DBN,自动编码AutoEncoder(堆栈SAE,卷积CAE)的作者是 RasmusBerg Palm。

今天给介绍deepLearnToolbox-master中的CNN部分。

DeepLearnToolbox-master中CNN内的函数:

调用关系为:

该模型使用了mnist的数字mnist_uint8.mat作为训练样本,作为cnn的一个使用样例,每个样本特征为一个28*28=的向量。

网络结构为:

让我们来分析各个函数:

一、Test_example_CNN

三、cnntrain.m.

四、cnnff.m.

五、cnnbp.m.

五、cnnapplygrads.m.

六、cnntest.m.

一、Test_example_CNN:

1设置CNN的基本参数规格,如卷积、降采样层的数量,卷积核的大小、降采样的降幅

2 cnnsetup函数 初始化卷积核、偏置等

3 cnntrain函数 训练cnn,把训练数据分成batch,然后调用

3.1  cnnff 完成训练的前向过程,

3.2  cnnbp计算并传递神经网络的error,并计算梯度(权重的修改量)

3.3  cnnapplygrads 把计算出来的梯度加到原始模型上去

4 cnntest函数,测试当前模型的准确率

该模型采用的数据为mnist_uint8.mat,

含有70000个手写数字样本其中60000作为训练样本,10000作为测试样本。

把数据转成相应的格式,并归一化。

二、Cnnsetup.m

该函数你用于初始化CNN的参数。

设置各层的mapsize大小,

初始化卷积层的卷积核、bias

尾部单层感知机的参数设置

bias统一设置为0

权重设置为:-1~1之间的随机数/sqrt(6/(输入神经元数量+输出神经元数量))

对于卷积核权重,输入输出为fan_in, fan_out

fan_out= net.layers{l}.outputmaps * net.layers{l}.kernelsize ^ 2;

%卷积核初始化,1层卷积为1*6个卷积核,2层卷积一共6*12=72个卷积核。对于每个卷积输出featuremap, 

转载请注明原文地址: https://www.6miu.com/read-5644.html

最新回复(0)