神经网络卷积操作

 

 卷积神经网络
什么是卷积:卷积(或内积)就是一种先把对应位置相乘然后再把结果相加的运算。
卷积的作用:通过卷积运算,可以使原信号特征增强,并且降低噪音。
卷积层:主要作用是进行特征提取
池化层:没有参数。主要作用是减小特征图,起到降维的作用。常用的方法是选取局部区域的最大值或者平均值。
通道:一个特征对应一个通道(或者叫特征图或特征映射),如RGB(三个通道)。当前层的特征映射是上一层特征映射的组合,也就是一个特征映射会对应上一层的一个或者多个特征映射。
卷积神经网络:是一个多层的神经网络,每层由多个二维平面(特征映射)组成,而每个平面由多个独立神经元组成。是前馈型网络。它对二维形状的平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。
CNN的关键操作:输入图像->卷积(滤波操作)->使用激活函数(如sigmoid,ReLu)->池化(如平均池化、最大池化)->特征图

官方网址:torch.nn — PyTorch 1.11.0 documentation

这里看一下CONV2D 点击CONV2D ,里面有相关的介绍,以及如何使用,在左边的torch.nn.function打开看看

其中TORCH.NN.FUNCTIONAL.CONV2D的相关参数是

input:输入

weight:权重(卷积核)

bias:偏置

strid:步径(卷积核下一次计算移动的步径)

padding:

 可以通过下面代码实现

import torch
import torch.nn.functional as F
input=torch.tensor([[1,2,0,3,1],
                    [0,1,2,3,1],
                    [1,2,1,0,0],
                    [5,2,3,1,1],
                    [2,1,0,1,1]
                    ]) # 二维矩阵
kernel=torch.tensor([[1,2,1],
                     [0,1,0],
                     [2,1,0]]) # 卷积核

#尺寸变换
input = torch.reshape(input,(1,1,5,5))
kernel = torch.reshape(kernel,(1,1,3,3))
print(input.shape)
print((kernel.shape))
# 这里的input,kernel的尺寸 不满足官网文件要求的尺寸 所以要进行尺寸变换


#卷积函数(移动路径为1)
output=F.conv2d(input,kernel,stride=1)
print(output)
#卷积函数(移动路径为2)
output2=F.conv2d(input,kernel,stride=2)
print(output2)

padding:输入图像左右两边会进行填充(padH,padW)默认为0不进行填充

 填充的地方默认都是设为0的

output3=F.conv2d(input,kernel,stride=1,padding=1)
print(output3)

输出结果为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值