刘二大人 Googlenet

inception 模型:

在这里插入图片描述
concatenate:拼接,沿着通道拼接张量在这里插入图片描述
average pooling:平均值池化,求平均值。
算完之后张量要拼接在一起,必须保证图像的宽度和高度一致。
输入张量是(b,c,w,h),b:batch,c,channel.
走不通路径出来唯一可以不同的是channel。w,h必须保持一致。所以3*3的卷积要保证最后经过block之后w,h没有变化做padding就可以。
average pooling可以通过设置padding和stride来保证输入输出的图片大小一样,即w和h一样。

1* 1的卷积

表示卷积核就是1* 1,计算时就是用其中的权重乘以图像中某个像素的值,然后得到相应的卷积后的结果。
1×1卷积核的个数取决于输入张量的通道。
计算过程:
单通道在这里插入图片描述
多通道(这里是三通道)
每一个都需要配一个1×1的卷积核。且做完卷积之后还要求和。
在这里插入图片描述
不管通道是多少,最后都会变成一个1×w×h的feature map。
如果输出需要的通道是c’,比如:如果提供三个摞起来的m个卷积核,就可以得到通道数为m的feature maps。
在这里插入图片描述
所以1×1的卷积可以跨越不同通道相同位置元素的值。在这里插入图片描述
也就是说像素x包含了输入通道中所有相同位置的输入通道feature map中的所有信息,把它们融合到了一起。是一种信息融合的算法。
比如,在考试成绩中,求总分就是一种信息融合。

1×1卷积在卷机神经网络中的作用

降低运算量:通过1×1的卷积降低了通道数量,减少运算量。
在这里插入图片描述

代码实现inception的方法。

  1. average pooling分支,有两个模块,写在init里面。输出通道数为24,只需要知道输入通道数,kernel_size=1,就可以做出1×1的卷积在这里插入图片描述

  2. 1×1分支:输出通道为16个,直接把x送到branch里面算出branch1×1在这里插入图片描述

  3. 5×5分支:两个模块,1×1的卷积和5×5的卷积,输出通道分别为16和24.为了保证图像大小不变,5×5的卷积padding为2。
    注:padding:扩充图片, 在图片外围补充一些像素点,把这些像素点初始化为0.
    padding的用途:
      (1)保持边界信息,如果没有加padding的话,输入图片最边缘的像素点信息只会被卷积核操作一次,但是图像中间的像素点会被扫描到很多遍,那么就会在一定程度上降低边界信息的参考程度,但是在加入padding之后,在实际处理过程中就会从新的边界进行操作,就从一定程度上解决了这个问题。
      (2)可以利用padding对输入尺寸有差异图片进行补齐,使得输入图片尺寸一致。
      (3)卷积神经网络的卷积层加入Padding,可以使得卷积层的输入维度和输出维度一致。
      (4)卷积神经网络的池化层加入Padding,一般都是保持边界信息和(1)所述一样。
     在这里插入图片描述

  4. 3×3分支:三个模块,一个1×1和两个3×3在这里插入图片描述

  5. concatenate:沿通道维度(dim=1)拼接在一起。在这里插入图片描述
    在这里插入图片描述
    dim=1
    inception模块:
    在这里插入图片描述
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值