Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
8903d706
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
5
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
23
列表
看板
标记
里程碑
合并请求
111
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
FluidDoc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
23
Issue
23
列表
看板
标记
里程碑
合并请求
111
合并请求
111
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
8903d706
编写于
9月 25, 2019
作者:
B
Bai Yifan
提交者:
GitHub
9月 25, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refine some api cn_doc (#1247)
* Refine fsp_matrix/deformable_conv/fsp_matrix/polygon_box_transform api.
上级
78ae64eb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
64 addition
and
60 deletion
+64
-60
doc/fluid/api_cn/layers_cn/deformable_conv_cn.rst
doc/fluid/api_cn/layers_cn/deformable_conv_cn.rst
+39
-33
doc/fluid/api_cn/layers_cn/flatten_cn.rst
doc/fluid/api_cn/layers_cn/flatten_cn.rst
+10
-8
doc/fluid/api_cn/layers_cn/fsp_matrix_cn.rst
doc/fluid/api_cn/layers_cn/fsp_matrix_cn.rst
+8
-13
doc/fluid/api_cn/layers_cn/polygon_box_transform_cn.rst
doc/fluid/api_cn/layers_cn/polygon_box_transform_cn.rst
+7
-6
未找到文件。
doc/fluid/api_cn/layers_cn/deformable_conv_cn.rst
浏览文件 @
8903d706
...
...
@@ -5,9 +5,10 @@ deformable_conv
.. py:function:: paddle.fluid.layers.deformable_conv(input, offset, mask, num_filters, filter_size, stride=1, padding=0, dilation=1, groups=None, deformable_groups=None, im2col_step=None, param_attr=None, bias_attr=None, modulated=True, name=None)
可变形卷积层
**可变形卷积算子**
deformable_conv op对输入4-D Tensor计算2-D可变形卷积。给定输入Tensor x,输出Tensor y,可变形卷积运算如下所示:
在4-D输入上计算2-D可变形卷积。给定输入图像x,输出特征图y,可变形卷积操作如下所示:
可形变卷积v2:
:math:`y(p) = \sum_{k=1}^{K}{w_k * x(p + p_k + \Delta p_k) * \Delta m_k}`
...
...
@@ -16,19 +17,20 @@ deformable_conv
:math:`y(p) = \sum_{k=1}^{K}{w_k * x(p + p_k + \Delta p_k)}`
其中 :math:`\Delta p_k 和 \Delta m_k` 分别为第k个位置的可学习偏移和调制标量。其中在可形变卷积中:math:`\Delta m_k`为1.
参考可变形卷积网络v2: `可变形程度越高,结果越好 <https://arxiv.org/abs/1811.11168v2>`_ 和 `形变卷积<https://arxiv.org/abs/1703.06211>`_。
其中 :math:`\Delta p_k` 和 :math:`\Delta m_k` 分别为第k个位置的可学习偏移和调制标量。在deformable_conv_v1中 :math:`\Delta m_k` 为1.
具体细节可以参考论文:`<<Deformable ConvNets v2: More Deformable, Better Results>> <https://arxiv.org/abs/1811.11168v2>`_ 和 `<<Deformable Convolutional Networks>> <https://arxiv.org/abs/1703.06211>`_ 。
**示例**
输入:
输入
形状: :math:`(N, C_{in}, H_{in}, W_{in})`
input
形状: :math:`(N, C_{in}, H_{in}, W_{in})`
卷积核形状: :math:`(C_{out}, C_{in}, H_f, W_f)`
偏移
形状: :math:`(N, 2 * deformable\_groups * H_f * H_w, H_{in}, W_{in})`
offset
形状: :math:`(N, 2 * deformable\_groups * H_f * H_w, H_{in}, W_{in})`
掩膜
形状: :math:`(N, deformable\_groups * H_f * H_w, H_{in}, W_{in})`
mask
形状: :math:`(N, deformable\_groups * H_f * H_w, H_{in}, W_{in})`
输出:
输出形状: :math:`(N, C_{out}, H_{out}, W_{out})`
...
...
@@ -43,48 +45,52 @@ deformable_conv
参数:
- **input** (Variable) - 形
式为[N, C, H, W]的输入图像
。
- **offset** (Variable) – 可变形卷积层的输入坐标偏移。
- **
Mask** (Variable) – 可变形卷积层的输入掩膜
。
- **num_filters** (int) – 卷积核数
。和输出图像
通道数相同。
- **filter_size** (int|tuple
|None) – 卷积核大小。如果filter_size为元组,则必须包含两个整数(filter_size_H, filter_size_W)。否则卷积核将为方形
。
- **stride** (int|tuple) – 步长大小。如果stride为元组,则必须包含两个整数(stride_H, stride_W)。否则stride_H = stride_W = stride。
默认stride =
1。
- **padding** (int|tuple) – padding大小。如果padding为元组,则必须包含两个整数(padding_H, padding_W)。否则padding_H = padding_W = padding。
默认padding =
0。
- **dilation** (int|tuple) – dilation大小。如果dilation为元组,则必须包含两个整数(dilation_H, dilation_W)。否则dilation_H = dilation_W = dilation。
默认dilation =
1。
- **groups** (int) –
可变形卷积层的群组数。依据Alex Krizhevsky的Deep CNN论文中的分组卷积,有:当group=2时,前一半卷积核只和前一半输入通道有关,而后一半卷积核只和后一半输入通道有关。默认groups=
1。
- **deformable_groups** (int) – 可变形
群组分区数。默认deformable_groups =
1。
- **im2col_step** (int) – 每个im2col计算的最大图像数。总batch大小应
该可以被该值整除或小于该值。如果您面临内存问题,可以尝试在此处使用一个更小的值。默认im2col_step =
64。
- **param_attr** (ParamAttr
|None) – 可变形卷积的可学习参数/权重的参数属性。如果将其设置为None或ParamAttr的一个属性,可变形卷积将创建ParamAttr作为param_attr。如果没有设置此param_attr的Initializer,该参数将被Normal(0.0, std)初始化,且其中的std为 :math:`(\frac{2.0 }{filter\_elem\_num})^{0.5}`。默认值
None。
- **bias_attr** (ParamAttr|bool
|None) – 可变形卷积层的偏置的参数属性。如果设为False,则输出单元不会加偏置。如果设为None或者ParamAttr的一个属性,conv2d会创建ParamAttr作为bias_attr。如果不设置bias_attr的Initializer,偏置会被初始化为0。默认值
None。
- **modulated** (bool)- 确定使用v1和v2中的哪个版本,如果为True,则选择使用v2。
默认
为True。
- **name** (str
|None) – 该层的名字(可选项)。如果设为None,该层将会被自动命名。默认值
None。
- **input** (Variable) - 形
状为 :math:`[N, C, H, W]` 的输入Tensor,数据类型为float32或float64
。
- **offset** (Variable) – 可变形卷积层的输入坐标偏移
,数据类型为float32或float64
。
- **
mask** (Variable, 可选) – 可变形卷积层的输入掩码,当使用可变形卷积算子v2时,请将mask设置为None, 数据类型为float32或float64
。
- **num_filters** (int) – 卷积核数
,与输出Tensor
通道数相同。
- **filter_size** (int|tuple
) – 卷积核大小。如果filter_size为元组,则必须包含两个整数(filter_size_H, filter_size_W)。若数据类型为int,卷积核形状为(filter_size, filter_size)
。
- **stride** (int|tuple) – 步长大小。如果stride为元组,则必须包含两个整数(stride_H, stride_W)。否则stride_H = stride_W = stride。
缺省值为
1。
- **padding** (int|tuple) – padding大小。如果padding为元组,则必须包含两个整数(padding_H, padding_W)。否则padding_H = padding_W = padding。
缺省值为
0。
- **dilation** (int|tuple) – dilation大小。如果dilation为元组,则必须包含两个整数(dilation_H, dilation_W)。否则dilation_H = dilation_W = dilation。
缺省值为
1。
- **groups** (int) –
卷积组数。依据Alex Krizhevsky的Deep CNN论文中的分组卷积,有:当group=2时,前一半卷积核只和前一半输入通道有关,而后一半卷积核只和后一半输入通道有关。缺省值为
1。
- **deformable_groups** (int) – 可变形
卷积组数。缺省值为
1。
- **im2col_step** (int) – 每个im2col计算的最大图像数。总batch大小应
可以被该值整除或小于该值。如果您面临内存问题,可以尝试在此处使用一个较小的值。缺省值为
64。
- **param_attr** (ParamAttr
,可选) – 可变形卷积的可学习权重的属性。如果将其设置为None或某种ParamAttr,可变形卷积将创建ParamAttr作为param_attr。如果没有设置此param_attr的Initializer,该参数将被Normal(0.0, std)初始化,且其中的std为 :math:`(\frac{2.0 }{filter\_elem\_num})^{0.5}` 。缺省值为
None。
- **bias_attr** (ParamAttr|bool
,可选) – 可变形卷积层的偏置的参数属性。如果设为False,则输出单元不会加偏置。如果设为None或者某种ParamAttr,conv2d会创建ParamAttr作为bias_attr。如果不设置bias_attr的Initializer,偏置会被初始化为0。缺省值为
None。
- **modulated** (bool)- 确定使用v1和v2中的哪个版本,如果为True,则选择使用v2。
缺省值
为True。
- **name** (str
,可选) – 该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name` ,缺省值为
None。
返回:
储存可变形卷积结果的张量变量
。
返回:
可变形卷积输出的4-D Tensor,数据类型为float32或float64
。
返回类型:
变量(Variable)
返回类型:
Variable
抛出:ValueError – 如果input, filter_size, stride, padding和groups的大小不匹配。
抛出
异常
:ValueError – 如果input, filter_size, stride, padding和groups的大小不匹配。
**代码示例**
.. code-block:: python
#deformable conv v2:
import paddle.fluid as fluid
data = fluid.layers.data(name='data', shape=[3, 32, 32], dtype='float32')
offset = fluid.layers.data(name='offset', shape=[18, 32, 32], dtype='float32')
mask = fluid.layers.data(name='mask', shape=[9, 32, 32], dtype='float32')
C_in, H_in, W_in = 3, 32, 32
filter_size, deformable_groups = 3, 1
data = fluid.layers.data(name='data', shape=[C_in, H_in, W_in], dtype='float32')
offset = fluid.layers.data(name='offset', shape=[2*deformable_groups*filter_size**2, H_in, W_in], dtype='float32')
mask = fluid.layers.data(name='mask', shape=[deformable_groups*filter_size**2, H_in, W_in], dtype='float32')
out = fluid.layers.deformable_conv(input=data, offset=offset, mask=mask,
num_filters=2, filter_size=
3
, padding=1, modulated=True)
num_filters=2, filter_size=
filter_size
, padding=1, modulated=True)
#deformable conv v1:
import paddle.fluid as fluid
data = fluid.layers.data(name='data', shape=[3, 32, 32], dtype='float32')
offset = fluid.layers.data(name='offset', shape=[18, 32, 32], dtype='float32')
C_in, H_in, W_in = 3, 32, 32
filter_size, deformable_groups = 3, 1
data = fluid.layers.data(name='data', shape=[C_in, H_in, W_in], dtype='float32')
offset = fluid.layers.data(name='offset', shape=[2*deformable_groups*filter_size**2, H_in, W_in], dtype='float32')
out = fluid.layers.deformable_conv(input=data, offset=offset, mask=None,
num_filters=2, filter_size=
3
, padding=1, modulated=False)
num_filters=2, filter_size=
filter_size
, padding=1, modulated=False)
...
...
doc/fluid/api_cn/layers_cn/flatten_cn.rst
浏览文件 @
8903d706
...
...
@@ -5,7 +5,7 @@ flatten
.. py:function:: paddle.fluid.layers.flatten(x, axis=1, name=None)
将输入张量压扁成二维
矩阵
flatten op将输入的多维Tensor展平成2-D Tensor
矩阵
例如:
...
...
@@ -30,25 +30,27 @@ flatten
Out.shape = (1, 3 * 100 * 100 * 4)
参数:
- **x** (Variable) - 一个
秩>=axis 的张量
- **axis** (int) - flatten
的划分轴,[0, axis) 轴数据被flatten到输出矩阵的0轴,[axis, R)被flatten到输出矩阵的1轴,其中R是输入张量的秩。axis的值必须在[0,R]范围内。当 axis= 0 时,输出张量的形状为 (1,d_0 \* d_1 \*… d_n) ,其输入张量的形状为(d_0, d_1,… d_n)
。
- **name** (str
|None) - 此层的名称(可选)。如果没有设置,层将自动命名
。
- **x** (Variable) - 一个
维度数>=axis 的多维Tensor, 数据类型可以为float32,float64,int8,int32或int64。
- **axis** (int) - flatten
展开的分割轴,[0, axis) 轴数据被flatten到输出矩阵的0轴,[axis, R)数据被flatten到输出矩阵的1轴,其中R是输入张量的总维度数。axis的值必须在[0,R]范围内。当 axis=0 时,若输入Tensor的维度为 :math:`[d_0, d_1,… d_n]` ,则输出张量的Tensor维度为 :math:`[1,d_0 * d_1 *… d_n]` ,缺省值为1
。
- **name** (str
,可选) - 该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name` ,缺省值为None
。
返回: 一个
二维张量,它包含输入张量的内容,但维数发生变化。输入的[0, axis)维将沿给定轴flatten到输出的前一个维度,剩余的输入维数flatten到输出的后一个维度
。
返回: 一个
2-D Tensor,它包含输入Tensor的数据,但维度发生变化。输入的[0, axis)维将沿axis展平到输出Tensor的0维度,剩余的输入维数展平到输出的1维度。数据类型与输入x相同
。
返回类型: Variable
抛出异常:
- ValueError: 如果 x 不是一个
变量
- ValueError: 如果axis的范围不在 [0, rank(x)]
- ValueError: 如果 x 不是一个
Variable
- ValueError: 如果axis的范围不在 [0, rank(x)]
范围内
**代码示例**
.. code-block:: python
import paddle.fluid as fluid
x = fluid.layers.data(name="x", shape=[4, 4, 3], dtype="float32")
x = fluid.layers.data(name="x", shape=[4, 4, 3], append_batch_size=False, dtype="float32")
# x shape is [4, 4, 3]
out = fluid.layers.flatten(x=x, axis=2)
# out shape is [16, 3]
doc/fluid/api_cn/layers_cn/fsp_matrix_cn.rst
浏览文件 @
8903d706
...
...
@@ -7,21 +7,21 @@ fsp_matrix
**FSP matrix op**
此运算用于计算两个特征映射的求解过程(FSP)矩阵。给定形状为[x_channel,h,w]的特征映射x和形状为[y_channel,h,w]的特征映射y,我们可以
分两步得到x和y的fsp矩阵:
fsp_matrix op用于计算两个4-D Tensor特征图的求解过程(FSP)矩阵。假设特征图x的形状为 :math:`[x\_channel,h,w]` ,特征图y的形状为 :math:`[y\_channel,h,w]` ,fsp_matrix op
分两步得到x和y的fsp矩阵:
1.
用形状[X_channel,H*W]将X重塑为矩阵,并用形状[H*W,y_channel]将Y重塑和转置为
矩阵。
1.
将x reshape到形状为 :math:`[x\_channel,h*w]` 的矩阵,将y reshape到形状为 :math:`[h*w,y\_channel]` 的
矩阵。
2.
乘以x和y得到形状为[x_channel,y_channel]
的fsp矩阵。
2.
对x和y做矩阵乘法得到形状为 :math:`[x\_channel,y\_channel]`
的fsp矩阵。
输出是一
批
fsp矩阵。
输出是一
个batch的
fsp矩阵。
参数:
- **x** (Variable): 一个形状为
[batch_size, x_channel, height, width]的特征映射
- **y** (Variable):
具有形状[batch_size, y_channel, height, width]的特征映射。Y轴通道可以与输入(X)的X轴通道不同,而其他尺寸必须与输入(X
)相同。
- **x** (Variable): 一个形状为
:math:`[batch\_size, x\_channel, height, width]` 的 4-D 特征图Tensor, 数据类型为float32或float64。
- **y** (Variable):
一个形状为 :math:`[batch\_size, y\_channel, height, width]` 的 4-D 特征图Tensor, 数据类型为float32或float64。y_channel可以与输入(x)的x_channel不同,而其他维度必须与输入(x
)相同。
返回:
形状为[batch_size, x_channel, y_channel]的fsp op的输出。x_channel 是x的通道,y_channel是y的通道
。
返回:
一个形状为 :math:`[batch\_size, x\_channel, y\_channel]` 的fsp矩阵, 是一个 3-D Tensor,数据类型与输入数据类型一致。其中,x_channel是输入x的通道数,y_channel是输入y的通道数。数据类型为float32或float64
。
返回类型:
fsp matrix (Variable)
返回类型:
Variable
**代码示例**
...
...
@@ -35,8 +35,3 @@ fsp_matrix
filter_size=1)
loss = fluid.layers.fsp_matrix(feature_map_0, feature_map_1)
doc/fluid/api_cn/layers_cn/polygon_box_transform_cn.rst
浏览文件 @
8903d706
...
...
@@ -5,18 +5,19 @@ polygon_box_transform
.. py:function:: paddle.fluid.layers.polygon_box_transform(input, name=None)
PolygonBoxTransform 算子。
**PolygonBoxTransform 算子**
该
算子用于将偏移坐标转变为真正
的坐标。
该
op用于将偏移坐标改变为真实
的坐标。
输入
是检测网络的最终几何输出。我们使用 2*n 个数来表示从 polygon_box 中的 n 个顶点(vertice)到像素位置的偏移。由于每个距离偏移包含两个数字 :math:`(x_i, y_i)` ,所以何输出包含 2*n 个通道
。
输入
4-D Tensor是检测网络最终的几何输出。我们使用 2*n 个数来表示从 polygon_box 中的 n 个顶点(vertice)到像素位置的偏移。由于每个距离偏移包含两个数 :math:`(x_i, y_i)` ,所以几何输出通道数为 2*n
。
参数:
- **input** (Variable) - shape 为[batch_size,geometry_channels,height,width]的张量
- **input** (Variable) - 形状为 :math:`[batch\_size,geometry\_channels,height,width]` 的4-D Tensor,数据类型为float32或float64。
- **name** (str,可选) – 该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name` ,缺省值为None。
返回:
与输入 shape 相同
返回:
polygon_box_transform输出的真实坐标,是一个 4-D Tensor。数据类型为float32或float64。
返回类型:
output(Variable)
返回类型:
Variable
**代码示例**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录