CNN结构概述

卷积神经网络(CNN)通过输入层、卷积层、激活层、池化层、全连接层和输出层逐步提取并处理特征。卷积层使用卷积核进行特征提取,激活层如ReLU增加非线性,池化层减少计算量,全连接层重新拟合特征,输出层给出最终结果。CNN的关键特性是局部连接和权值共享,有效降低了网络复杂度。
摘要由CSDN通过智能技术生成

  • 全连接神经网络中,相邻两层的每个神经元之间都是直接相连的。就是每一个节点都要参与下一层的计算, 随着神经元的个数,也即特征维数的增加,全连接神经网络的复杂度和计算量会显著增大
  • 卷积神经网络(Convolutional Neural Network, CNN)具有局部连接权值共享的特性,是指相邻两层的神经元之间是局部连接的,且在同一层的部分神经元之间连接的权重是共享的,因此,CNN能够显著减少神经网络的复杂度。
  • 全连接和局部连接的区别: 这块局部区域称作感受野(receptive field)
    在这里插入图片描述
  • 权值共享:在同一通道中, 所有参数采用的都是同一个卷积核
    在这里插入图片描述

CNN的结构

(1)输入层:输入数据

(2)卷积层:通过卷积核进自动化特征提取,找到语义表征:

卷积核:
  • 卷积核会定义在对输入图像中的一部分区域进行加权平均处理时的权重。卷积核是一个小尺寸的矩阵,具体来说,整个过程就是卷积核在上面所说的输入图像上不断以滑动窗口的方式按照一定的步长滑动,滑到的一部分数与卷积核的做对位相乘,然后求和,每滑动一次,得到一个值,等到全部滑动之后生成一个新的矩阵

  • 卷积核的大小一般为奇数,像3X3以及5X5等,卷积核最初会进行随机值的初始化,之后随着CNN的训练过程,不断学习和更新这些卷积核中的参数(权重),直到训练结束,参数固定

# 只堆叠两个简单的卷积层
import torch
import torch.nn as nn

class Net(nn.Module):
    def __init__(self, num_classes=3):
        super(Net, self).__init__()
        self.layer1 = nn.Conv2d(1, 16, kernel_size=5, stride=1, padding=2)  # 卷积层1
        self.layer2 = nn.Conv2d(16, 32, kernel_size=5, stride=1, padding=2)# 卷积层
  
    def forward(self, x):
        out = self.layer1(x)
        out = self.layer2(out)
        return out

   
model = Net()
 
print
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值