torch.nn.Conv2d

pytorch中tensor的维度顺序默认是 [batch, channel, height, width]

2D卷积层

torch.nn.Conv2d(in_channels, 
                out_channels, 
                kernel_size, 
                stride=1, 
                padding=0, 
                dilation=1, 
                groups=1, 
                bias=True
                padding_mode = 'zeros')

参数详解

  • in_channels(int) :输入张量的通道数
  • out_channels(int) :卷积中滤波器的数量,表示输出张量的通道数
  • kerner_size(int or tuple) :卷积窗口的宽度和高度
  • stride(int or tupleoptional) :卷积沿宽度和高度方向的步长
  • padding(int or tupleoptional) :输入的每一条边填充的层数
  • dilation(int or tupleoptional) :卷积核元素之间的间距,即膨胀卷积的膨胀率,默认为1。
  • groups(intoptional):控制输入和输出之间的连接: group=1,输出是所有的输入的卷积;group=2,此时相当于有并排的两个卷积层,每个卷积层计算输入通道的一半,并且产生的输出是输出通道的一半,随后将这两个输出连接起来。
  • bias(booloptional) :如果bias=True,添加偏置
  • padding_mode(str, optional) :填充的方式,如果padding_mode = 'zeros',表示用0填充

示例

import torch.nn as nn
import torch

# 创建一个卷积层,填充一圈0
conv1 = nn.Conv2d(in_channels=3,
                  out_channels=32,
                  kernel_size=(3, 3),
                  stride=(2, 2),
                  padding=1)

# 创建一个卷积层,无填充
conv2 = nn.Conv2d(in_channels=3,
                  out_channels=32,
                  kernel_size=(3, 3),
                  stride=(2, 2),
                  padding=0)

# 创建一个维度为[64, 3, 5, 5]的tensor
x = torch.rand(64, 3, 5, 5)  

# 进行卷积
y1 = conv1(x)
print(y1.shape) # [64, 32, 3, 3]

# 进行卷积
y2 = conv2(x)
print(y2.shape) # [64, 32, 2, 2]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值