Pytorch深度学习-----神经网络的卷积操作

系列文章目录

PyTorch深度学习------Anaconda和PyTorch安装
Pytorch深度学习-----数据模块Dataset类
Pytorch深度学习------TensorBoard的使用
Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Compose,RandomCrop)
Pytorch深度学习------torchvision中dataset数据集的使用(CIFAR10)
Pytorch深度学习-----DataLoader的用法
Pytorch深度学习-----神经网络的基本骨架-nn.Module的使用


文章目录


一、卷积操作是什么?

卷积操作是一种线性操作,通常用于处理信号和图像等数据 。在图像处理中,卷积操作可以用于提取图像的特征,例如边缘、纹理等

卷积操作是通过卷积核(也称滤波器)与输入数据进行逐元素乘积、求和运算的过程,从而得到卷积特征图 。所以卷积操作就是一种运算

二、使用步骤(以二维卷积操作conv2d函数为例)

1.手动运算过程

如下小土堆图所示

如下文章所示

2.conv2d参数

input:输入矩阵,为tensor型,

weight:卷积核 ,为tensor型,

bias:即误差/偏差值

stride:步长,默认为1

padding:填充大小,默认为0

dilation:控制卷积核之间的间距

groups:控制输入和输出之间的连接
注意:

input中的shape:
minibatch:batch中的样例个数
in_channels:每个样例数据的通道数
iH:每个样例的高(行数)
iW:每个样例的宽(列数)

weight中的shape:
out_channels:卷积核的个数
in_channels/groups:每个卷积核的通道数
kH:每个卷积核的高(行数)
kW:每个卷积核的宽(列数)

3.验证第1步的运算

代码如下:

python 复制代码
import torch.nn.functional as F
import torch

# 创建二维矩阵,并为tensor数据类型
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]])
# 创建tensor数据类型的卷积核
kernel = torch.tensor([[1,2,1],
                       [0,1,0],
                       [2,1,0]])
# 打印核验看input和kernel的shape是不是有4个数据
print(input.shape)  # torch.Size([5, 5])
print(kernel.shape)  # torch.Size([3, 3])
# 由上面可以知道shape不是4个数据,而是只有h和w的2个数据,故进行reshape
input = torch.reshape(input,(1,1,5,5)) # 表示样例个数1,每一个样例数据的通道数1,高5,宽5
kernel = torch.reshape(kernel,(1,1,3,3))
# 进行conv2d卷积运算
output = F.conv2d(input,kernel,stride=1)  # stride=1即每一次只进行一步移动操作
print(output)
"""
tensor([[[[10, 12, 12],
          [18, 16, 16],
          [13,  9,  3]]]])
"""

相关推荐
承渊政道2 小时前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(新时代的曙光之大模型与人工智能)
人工智能·pytorch·python·深度学习·机器学习·语言模型·自然语言处理
钓了猫的鱼儿2 小时前
基于深度学习+AI的无人机麦苗目标检测与预警系统(Python源码+数据集+UI可视化界面+YOLOv11训练结果)
人工智能·深度学习·无人机
神州数码云基地3 小时前
DSPy + Parlant:从手动调优到自动编译的效率加速器
人工智能·深度学习·机器学习
武子康14 小时前
调查研究-151 Slack vs Jira:区别、使用指南与团队选择方法
人工智能·科技·深度学习·ai·职场和发展·jira·slack
z小猫不吃鱼17 小时前
05 Transformer Encoder 详解:BERT 为什么使用 Encoder?
深度学习·bert·transformer
钓了猫的鱼儿19 小时前
基于深度学习+AI的卷心菜目标检测与预警系统(Python源码+数据集+UI可视化界面+YOLOv11训练结果)
人工智能·深度学习·目标检测
汽车仪器仪表相关领域19 小时前
南华 NHA-604/605 汽车排放气体测试仪:国六b全适配高精度便携检测设备
大数据·人工智能·功能测试·深度学习·安全·fpga开发·压力测试
CV实验室20 小时前
Remote Sensing 29个SITS基准数据集综述:多模态遥感分类的新起点
人工智能·深度学习·计算机视觉·音视频
手写码匠1 天前
华为云Flexus+DeepSeek征文|基于华为云Flexus X实例 + Dify + DeepSeek 构建企业级智能知识库问答系统实战
人工智能·深度学习·算法·aigc