CNN原理和代码解读【未完待续】

 CNN 原理和代码解读

原理参见论文Notes on Convolutional Neural Networks
代码来自githupDeep Learningtoolbox

(一)卷积和pooling


包含了卷积,求和,加入偏置,经过非线性激励函数等过程


上图说明了获得一个输出maps的过程。蓝色的maps是输入;绿色的maps,是卷积后的结果;黄色的maps是输出。

先对输入层分别做卷积,注意对不同的输出map,卷积核不同,即不同的j,kij不同(不同的输入map,卷积核也不相同,即不同的i,kij不同。

权值共享,仅在对一个maps求卷积的时候(滑动卷积核时,卷积核相对于该maps位置变,但是权值未变)。注意这里的卷积层还加入了偏置,并经过一个而非线性激励函数输出(非线性激励函数不可以少,卷积运算实际也是一种线性运算,没有非线性激励函数,该网络是无法模拟一个非线性复杂函数的)。看一下代码是如何实现这一过程的。

<span style="background-color: rgb(204, 204, 255);">for j = 1 : net.layers{l}.outputmaps   %  for each output map
                %  create temp output map
                z = zeros(size(net.layers{l - 1}.a{l-1}) - [net.layers{l}.kernelsize - 1 net.layers{l}.kernelsize - 1 0]);
                %z = zeros(size(net.layers{l - 1}.a{1}) - [net.layers{l}.kernelsize - 1 net.layers{l}.kernelsize - 1 0]); %本层输出的map大小[x y num]x*y是map大小,num是样本的个数
                for i = 1 : inputmaps   %  for each inp
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值