Conv3D¶
- class paddle.fluid.dygraph. Conv3D ( num_channels, num_filters, filter_size, stride=1, padding=0, dilation=1, groups=None, param_attr=None, bias_attr=None, use_cudnn=True, act=None, dtype='float32' ) [源代码] ¶
该接口用于构建 Conv3D
类的一个可调用对象,具体用法参照 代码示例
。3D卷积层(convolution3D layer)根据输入、滤波器(filter)、步长(stride)、填充(padding)、膨胀(dilations)、组数参数计算得到输出。输入和输出是[N, C, D, H, W]的多维tensor,其中N是批尺寸,C是通道数,D是特征深度,H是特征高度,W是特征宽度。卷积三维(Convlution3D)和卷积二维(Convlution2D)相似,但多了一维深度(depth)。如果提供了bias属性和激活函数类型,bias会添加到卷积(convolution)的结果中相应的激活函数会作用在最终结果上。
对每个输入X,有等式:
- 其中:
-
\(X\):输入值,NCDHW格式的张量(Tensor)
\(W\):滤波器值,MCDHW格式的张量(Tensor)
\(*\):卷积操作
\(b\) :Bias值,二维张量(Tensor),维度为
[M,1]
\(\sigma\):激活函数
\(Out\):输出值,
Out
和X
的维度可能不同
示例
-
- 输入:
-
输入Tensor的维度:\([N, C_{in}, D_{in}, H_{in}, W_{in}]\)
滤波器Tensor的维度:\([C_{out}, C_{in}, D_f, H_f, W_f]\)
-
- 输出:
-
输出Tensor的维度:\([N, C_{out}, D_{out}, H_{out}, W_{out}]\)
其中
参数¶
num_channels (int) - 输入图像的通道数。
num_fliters (int) - 滤波器(卷积核)的个数。和输出图像通道相同。
filter_size (int|tuple) - 滤波器大小。如果filter_size是一个元组,则必须包含三个整型数,(filter_size_D, filter_size_H, filter_size_W)。如果filter_size是一个int型,则filter_size_depth = filter_size_height = filter_size_width = filter_size。
stride (int|tuple,可选) - 步长(stride)大小。滤波器和输入进行卷积计算时滑动的步长。如果步长(stride)为元组,则必须包含三个整型数,(stride_D, stride_H, stride_W)。否则,stride_D = stride_H = stride_W = stride。默认值为1。
padding (int|tuple,可选) - 填充(padding)大小。padding参数在输入特征层每边添加padding个0。如果填充(padding)为元组,则必须包含三个整型数,(padding_depth, padding_height, padding_width)。否则,padding_depth = padding_height = padding_width = padding。默认值为0。
dilation (int|tuple,可选) - 膨胀(dilation)大小。空洞卷积时会指该参数,滤波器对输入进行卷积时,感受野里每相邻两个特征点之间的空洞信息,根据 可视化效果图 较好理解。如果膨胀(dialation)为元组,则必须包含两个整型数,(dilation_D, dilation_H, dilation_W)。否则,dilation_D = dilation_H = dilation_W = dilation。默认值为1。
groups (int,可选) - 三维卷积层(Conv3D Layer)的组数。根据Alex Krizhevsky的深度卷积神经网络(CNN)论文中的成组卷积:当group=2,输入和滤波器分别根据通道数量平均分为两组,第一组滤波器和第一组输入进行卷积计算,第二组滤波器和第二组输入进行卷积计算。默认值为1。
param_attr (ParamAttr,可选) - 指定权重参数属性的对象。默认值为None,表示使用默认的权重参数属性。具体用法请参见 ParamAttr 。
bias_attr (ParamAttr,可选) - 指定偏置参数属性的对象。默认值为None,表示使用默认的偏置参数属性。具体用法请参见 ParamAttr。
use_cudnn (bool,可选) - 是否用cudnn内核,只有安装Paddle GPU版时才有效。默认值为True。
act (str,可选) - 激活函数类型,如果设为None,则未添加激活函数。默认值为None。
dtype (str,可选) - 数据类型,可以为"float32"或"float64"。默认值:"float32"。
返回¶
无
代码示例¶
import paddle.fluid as fluid
import numpy
with fluid.dygraph.guard():
data = numpy.random.random((5, 3, 12, 32, 32)).astype('float32')
conv3d = fluid.dygraph.nn.Conv3D(
'Conv3D', num_filters=2, filter_size=3, act="relu")
ret = conv3d(fluid.dygraph.base.to_variable(data))