Skip to content

Commit

Permalink
[Docathon][Add CN Doc No.32 ] (#6430)
Browse files Browse the repository at this point in the history
* [Docathon][Add CN Doc No.32]

* [Docathon][Add CN Doc No.32]

* modified:   docs/api/paddle/sparse/nn/SubmConv2D_cn.rst

* modified:   docs/api/paddle/sparse/nn/SubmConv2D_cn.rst
  • Loading branch information
Kaedeharai authored Jan 22, 2024
1 parent 63a4628 commit 64646ff
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/api/paddle/sparse/Overview_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ paddle.sparse 目录包含飞桨框架支持稀疏数据存储和计算相关的
" :ref:`paddle.sparse.nn.BatchNorm<cn_api_paddle_sparse_nn_BatchNorm>` ", " Batch Normalization 层"
" :ref:`paddle.sparse.nn.SyncBatchNorm<cn_api_paddle_sparse_nn_SyncBatchNorm>` ", " Synchronized Batch Normalization 层"
" :ref:`paddle.sparse.nn.MaxPool3D<cn_api_paddle_sparse_nn_MaxPool3D>` ", "三维最大池化层"
" :ref:`paddle.sparse.nn.SubmConv2D <cn_api_paddle_sparse_nn_SubmConv2D>` ", "子流形二维卷积层"

.. _about_sparse_nn_functional:

Expand Down
81 changes: 81 additions & 0 deletions docs/api/paddle/sparse/nn/SubmConv2D_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
.. _cn_api_paddle_sparse_nn_SubmConv2D:

SubmConv2D
-------------------------------

.. py:class:: paddle.sparse.nn.SubmConv2D(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, padding_mode='zeros', key=None, weight_attr=None, bias_attr=None, data_format='NHWC')
**子流形稀疏二维卷积层**

子流形稀疏二维卷积层(submanifold sparse convolution2d layer)根据输入计算输出,卷积核和步长、填充、空洞大小(dilations)一组参数。
输入(input)和输出(Output)是多维的稀疏张量(Sparse Coo Tensor),
形状为 :math:[N,H,W,C] 其中 N 是批尺寸,C 是通道,H 是特征高度,W 是特征宽度。
如果提供了 bias_attr,则添加偏置项到卷积的输出。
对于每一个输入 :math:`X`,方程是:

.. math::
Out = W \ast X + b
其中:

- :math:`X`: 输入值, NDHWC 格式的 Tencer。
- :math:`W`: 卷积核值, NDHWC 格式的 Tencer。
- :math:`\\ast`: 子流形卷积运算, 参考论文: https://arxiv.org/abs/1706.01307。
- :math:`b`: 偏置值, 形状为[M]的 1-D Tencer。
- :math:`Out`: 输出值, :math:`Out` 和 :math:`X` 的形状可能不同。

参数
::::::::::::

- **in_channels** (int): - 输入图像的通道数。
- **out_channels** (int): - 卷积操作产生的输出通道数。
- **kernel_size** (int|list|tuple): - 卷积核的大小。可以为单个整数或包含三个整数的元组或列表,分别表示卷积核的深度,高和宽。如果为单个整数,表示卷积核的深度,高和宽都等于该整数。
- **stride** (int|list|tuple, 可选): - 步长大小。如果 stride 是一个列表/元组,它必须包含两个整数,(stride_H, stride_W)。否则, stride_H = stride_W = stride。默认值为 1。
- **padding** (int|str|tuple|list, 可选): - 填充大小。应为以下几种格式之一;

- (1) 如果它是一个字符串,可以是 "VALID" 或者 "SAME",计算细节可参考上述 ``padding`` = "SAME" 或 ``padding`` = "VALID" 时的计算公式。
- (2) 如果它是一个整数, 则代表它每个 Spartial 维度(depth, height, width) 被 `padding` 的大小填充为零。
- (3) 一个 list[int] 或 tuple[int],其长度是 Spartial 维度的数目,它包含每个 Spartial 维度每侧的填充量。它的形式为 [pad_d1, pad_d2, ...]。
- (4) 一个 list[int] 或 tuple[int],其长度为 2 * 部分维数。对于所有局部维度,它的形式为 [pad_before, pad_after, pad_before, pad_after, ...]。
- (5) 一个整数对的列表或元组。它的形式为 [[pad_before, pad_after], [pad_before, pad_after], ...]。

请注意,批维度和通道维度也包括在内。每对整数对应于输入维度的填充量。批维度和通道维度中的填充应为[0, 0]或者是(0, 0)默认值为 0。
- **dilation** (int|list|tuple, 可选): - 空洞大小。如果 dilation 是列表或元组, 则它必须包含两个整数 (dilation_H, dilation_W)。否则, dilation_H = dilation_W = dilation。默认值为 1。
- **groups** (int, 可选): - 二维卷积层的组号。根据 Alex Krizhevsky 的 Deep CNN 论文中的分组卷积:当 group = 2 时, 卷积核的前半部分仅连接到输入通道的前半部分, 而卷积核的后半部分仅连接到输入通道的后半部分。默认值为 1。
- **padding_mode** (str, 可选): - ``'zeros'``, ``'reflect'``, ``'replicate'`` 或 ``'circular'``。 目前仅支持 ``'zeros'``。
- **key** (str, 可选): - key 用于保存或使用相同的规则手册,规则手册的定义和作用是指 https://pdfs.semanticscholar.org/5125/a16039cabc6320c908a4764f32596e018ad3.pdf。默认值为 None。
- **weight_attr** (ParamAttr, 可选): - conv2d 的可学习参数/权重的参数属性。如果设置为 None 或 ParamAttr 的一个属性,则 conv2d 将创建 ParamAttr 作为 param_attr。 如果设置为 None, 则参数初始化为:math:`Normal(0.0, std)`, 并且 :math:`std` 是:math:`(\frac{2.0 }{filter\_elem\_num})^{0.5}`,默认值为 None。
- **bias_attr** (ParamAttr|bool, 可选): - conv2d 偏差的参数属性。如果设置为 False, 则不会向输出单位添加任何偏置。如果设置为 None 或 ParamAttr 的一个属性,则 conv2d 将创建 ParamAttr 作为 bias_attr。如果未设置 bias_attr 的初始值设定项,则偏置初始化为零。默认值为 None。
- **data_format** (str, 可选): 指定输入布局的数据格式。它可以是 "NCHW" 或 "NHWC"。目前仅支持 "NHWC"。

属性
::::::::::::

weight
'''''''''
该层卷积核的可学习权重,类型为 ``Parameter``。

bias
'''''''''
该层的可学习偏置,类型为 ``Parameter``。

形状
::::::::::::

- 输入: :math:`(N, H_{in}, W_{in}, C_{in})`
- 权重: :math:`(K_{h}, K_{w}, C_{in}, C_{out})`
- 偏置: :math:`(C_{out})`
- 输出: :math:`(N, H_{out}, W_{out}, C_{out})`

其中

.. math::
H_{out}&= \frac{(H_{in} + 2 * paddings[0] - (dilations[0] * (kernel\_size[0] - 1) + 1))}{strides[0]} + 1
W_{out}&= \frac{(W_{in} + 2 * paddings[1] - (dilations[1] * (kernel\_size[1] - 1) + 1))}{strides[1]} + 1
代码示例
::::::::::::

COPY-FROM: paddle.sparse.nn.SubmConv2D

0 comments on commit 64646ff

Please sign in to comment.