PyTorch学习之torch.nn.functional.conv2d函数

PyTorch学习之torch.nn.functional.conv2d函数

一、简介

torch.nn.functional.conv2d 是 PyTorch 中用于进行二维卷积操作的函数。卷积操作是深度学习中卷积神经网络(CNN)的核心部分,用于提取图像特征,常见于图像分类、目标检测和语义分割等任务中。

二、基本语法

torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

三、参数说明

  • input (Tensor): 输入张量,形状为 (N, C_in, H, W),其中 N 是批量大小,C_in 是输入通道数,H 是高度,W 是宽度。
  • weight (Tensor): 卷积核权重,形状为 (C_out, C_in // groups, kH, kW),其中 C_out 是输出通道数,kH 是卷积核高度,kW 是卷积核宽度。
  • bias (Tensor, 可选): 偏置,形状为 (C_out)。如果为 None,则不添加偏置。
  • stride (int 或 tuple, 可选): 卷积步长,默认值为 1
  • padding (int 或 tuple, 可选): 输入的每一边填充的大小,默认值为 0
  • dilation (int 或 tuple, 可选): 卷积核元素之间的间距,默认值为 1
  • groups (int, 可选): 将输入分组,默认值为 1groups 的值大于 1 时,相当于对输入进行组卷积。
    • 默认是1是因为我们一般对图像的卷积是将图像的RGB通道卷积后合并。
    • 如果你卷积后不想合并通道,即卷积后仍然是彩色图像,groups应该设置为3

四、返回值

返回一个张量,形状为 (N, C_out, H_out, W_out),表示卷积后的输出。

五、示例

示例 1: 基本卷积操作
import torch
import torch.nn.functional as F

# 创建一个形状为 (1, 1, 5, 5) 的输入张量
input = torch.tensor([[[[1, 2, 3, 4, 5],
                        [6, 7, 8, 9, 10],
                        [11, 12, 13, 14, 15],
                        [16, 17, 18, 19, 20],
                        [21, 22, 23, 24, 25]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值