卷积神经元网络CNN基础

文章目录

        • CNN结构
          • 卷积层(Convolution layer)
          • 池化层(Max Pooling layer)
          • Flatten layer
          • 全链接层(Full connect layer)
          • 金子塔结构

CNN结构

卷积层(Convolution layer)
  • Filter(卷积核):实际上是一个矩阵,用每个Filter与基础图像做内积(内积,不是卷积)可以得到一个Feature Map
  • Degree of activation of a filer (卷积核的激活度): 对Feature Map中的值进行求和,用途是识别特点的特征(在Input有特定特征时,对应的filter求出的degree of activation会很大)
  • Stride(步长):Filter每次移动的距离
    卷积神经元网络CNN基础_第1张图片

说明
x:有b张图片,3个通道(R,G,B),像素28*28
one k: 单一卷积核(对R,G,B 3个通道各有一个卷积核),3个通道,卷积核矩阵3✖3
multi-k:有多个卷积核(例如blur,sharp,edge等,识别不同特征)
bias:对应每个卷积核有一个偏置

关于卷积操作

一般要处理的彩色图像拥有不止一个通道,那对应的卷积核也不止一个通道,但是卷积计算出的结果只有一个通道。例如:像素为28*28的彩色图像有R,G,B三个通道,原始的数据张量即为(28,28,3),对应卷积核也应该有3个通道,例如(3,3,3)。但是卷积之后,每个通道对应同一位置的像素值会进行求合,所以卷积之后的结果为(26,26,1)
如果卷积核有多个,比如100个,卷积核张量大小为(3,3,3,100),这样卷积之后的结果为(26,26,100)

  • Python代码
import torch
layer = torch.nn.Conv2d(1,3,kernel_size=3,stride=1,padding=0)  #原图通道为1,卷积核有3个,卷积核大小为3*3,步长为1,补丁(原图扩展)为0
池化层(Max Pooling layer)
  • 对Feature Map进行压缩(对图像进行压缩,通过一定规则选择特定像素点,比如仅选择feature map中的最大值,以对feature map进行降维)
  • Python代码
layer = torch.nn.MaxPool2d(3,stride=2)   #卷积核大小为3*3,步长为1,选择feature map中最大值
Flatten layer
  • 在全链接层之前,需要把数据“压扁”成一维(后面全链接层就和普通的神经元网络一样了)
全链接层(Full connect layer)
金子塔结构
  • CNN的网络结构中的一种,每层识别的特征由简到繁。
    卷积神经元网络CNN基础_第2张图片

你可能感兴趣的:(cnn,深度学习,计算机视觉)