基于Pytorch的3D卷积

3D卷积核相比于2D卷积核引入了时间尺度,并且在宽、高、深度(不是单张图像的通道数,这个深度可以理解为帧间)方向上进行滑窗。

在pytorch中,输入数据的维数可以表示为(N,C,D,H,W),其中:N为batch_size,C为输入的通道数,D为深度(D这个维度上含有时序信息),H和W分别是输入图像的高和宽。3维卷积核的维数可以表示为(Cout,C,FD,FH,FW),其中:Cout为输出通道数,(FD,FH,FW)为3维滤波器的尺寸。特别的FD为深度方向的滤波器尺寸,它所关联的是时序信息,FD越大表示在一次滤波过程中考虑到的时序信息越长;FD越小表示在一次滤波过程中考虑到的时序信息越短。输出数据的维数为(N,Cout,Dout,Hout,Wout)

nn.Conv3D(in_channels,out_channels,kernel_size=(FD,FH,FW),stride,padding)

import torch
import torch.nn as nn


x=torch.randn(5,3,10,224,224)
conv = nn.Conv3d(3, 64, kernel_size=(4,3,3), stride=1, padding=1)
print(conv.weight.size())#(64,3,4,3,3)
out=conv(x)
print(out.size())#(5,64,9,224,224)

你可能感兴趣的:(基于Pytorch的3D卷积)