做直播网站需要学什么,北京网站开发培训,用来做网页的软件,最好的建设工程网站文章目录 一、nn.Conv2d二、卷积操作原理三、代码实现卷积操作 一、nn.Conv2d
nn.Conv2d 是 PyTorch 中的一个类#xff0c;它代表了一个二维卷积层#xff0c;通常用于处理图像数据。在深度学习和计算机视觉中#xff0c;卷积层是构建卷积神经网络#xff08;CNN#xf… 文章目录 一、nn.Conv2d二、卷积操作原理三、代码实现卷积操作 一、nn.Conv2d
nn.Conv2d 是 PyTorch 中的一个类它代表了一个二维卷积层通常用于处理图像数据。在深度学习和计算机视觉中卷积层是构建卷积神经网络CNN的基本构件它们能够从图像中提取特征。 二维卷积层 nn.Conv2d 的相关参数
in_channels输入图像的通道数。例如对于彩色图像通常 in_channels 为 3因为彩色图像有 RGB 三个通道。out_channels输出特征图的通道数。这个参数决定了卷积层输出的特征图数量也就是卷积核的数量。kernel_size卷积核的大小。它是一个元组或整数指定了卷积核在每个空间维度高度和宽度上的尺寸。例如kernel_size3 表示卷积核是 3x3 的。stride卷积的步长。它指定了卷积核在图像上滑动的间隔。默认值为 1意味着卷积核每次移动一个像素。padding填充。它用于在输入图像的边界周围填充零。这通常用于控制输出特征图的空间尺寸。dilation膨胀。它用于控制卷积核中元素之间的间距用于增大卷积核的感受野。groups分组卷积的组数。通过设置这个参数可以使得卷积层的某些部分不与其他部分的输入或输出相连接这在某些特定的网络架构中很有用。
二、卷积操作原理
假设输入图像是一个5x5的矩阵而卷积核是一个3x3的矩阵通过卷积操作得到结果矩阵
当卷积步长stride1计算方式 把卷积核放在输入图像当中也就是1x12x21x12x11x210将得到的答案放在结果的第一个框框里头。 以此类推进行第二个操作 同样第三个操作 需要注意的是卷积核不能出格子也就是不能像下图操作 在第一行运行结束后就往下面进行运算 以此类推将卷积核在输入图像中全部运算完成。
三、代码实现卷积操作
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]])#通过函数reshape进行格式的转换
input torch.reshape(input,(1, 1, 5, 5))
kernel torch.reshape(kernel,(1, 1, 3, 3))
#查看转换后的input和kernel格式
print(input.shape)
print(kernel.shape)output F.conv2d(input, kernel, stride1)
print(output)
注因为conv2d的输入格式一定要是x,y,z,t4个数字形式故需要使用reshape函数先进行数据的转换然后再输入给conv2d当中。
运行结果 可以看到输出的矩阵结果跟我们上面计算的结果是一致的。