[pytorch][基础模块] torch.nn.Conv3D 使用样例与说明

torch.nn.Conv3D

3D卷积, 输入的shape是 ( N , C i n , D , H , W ) (N, C_{in},D,H,W) (N,Cin,D,H,W),输出shape ( N , C o u t , D o u t , H o u t , W o u t ) (N,C_{out},D_{out},H_{out},W_{out}) (N,Cout,Dout,Hout,Wout)

实际使用建议:
N N N 就是batch_size,无话可说; C i n C_{in} Cin 则对应着输入图像的通道数,如RGB\BGR图像这一维度就是3; D D D则是深度,如果是对于视频序列使用的3d conv,那么这个 D D D实际对应的就是要执行卷积的frame_size H , W H,W H,W对应的就是输入图像的高和宽

另外,使用的时候如果不指定具体size,如:padding=2,则是每一维度都为size是2的padding,也就是padding=(2,2,2);如果指定每一维的padding的话则有就是指定的size,如:padding=(3,2,1),则是分别是在三个维度上有3,2,1三种不同的padding,另外kernelstride也是如此

使用样例:

import torch
import torch.nn as nn

# Sample intput | 随机输入
net_input = torch.randn(32, 3, 10, 224, 224)

# With square kernels and equal stride | 所有维度同一个参数配置
conv = nn.Conv3d(3, 64, kernel_size=3, stride=2, padding=1)
net_output = conv(net_input)
print(net_output.shape)  # shape=[32, 64, 5, 112, 112] | 相当于每一个维度上的卷积核大小都是3,步长都是2,pad都是1

# non-square kernels and unequal stride and with padding | 每一维度不同参数配置
conv = nn.Conv3d(3, 64, (2, 3, 3), stride=(1, 2, 2), padding=(0, 1, 1))
net_output = conv(net_input)
print(net_output.shape) # shape=[32, 64, 9, 112, 112]

pytorch中3D的卷积使用还可以参考这个C3D的model:
model传送门

pytorch官方文档:
官方文档传送门

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值