Skip to content

Commit 2d8b745

Browse files
authored
新增随机变量变换相关API中文文档 (#4642) (#4671)
* add paddle.distribution.Transform chinese document * add paddle.distribution.AbsTransform chinese document * add paddle.distribution.AffineTransform chinese document * add ChainTransform,ExpTransform,IndependentTransform chinese document * add PowerTransform,ReshapeTransform chinese document * add SigmoidTransform,SoftmaxTransform,StackTransform,StickBreakingTransform,TanhTransform chinese documents * add Independent,Multinomial,TransformedDistribution chinese documents * fix transform's APIs format problem
1 parent 3d71058 commit 2d8b745

17 files changed

+1767
-3
lines changed
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
.. _cn_api_paddle_distribution_AbsTransform:
2+
3+
AbsTransform
4+
-------------------------------
5+
6+
.. py:class:: paddle.distribution.AbsTransform()
7+
8+
取绝对值变换 :math:`y = |x|` .
9+
10+
``AbsTransform`` 不是双射变换,其逆变换处理逻辑如下:
11+
12+
* 当 :math:`y \in (0, +\infty )` , ``AbsTransform.inverse(y)`` 返回元组 ``(-y, y)`` .
13+
* 当 :math:`y=0` , ``AbsTransform.inverse(y)`` 返回 ``(0, 0)`` .
14+
* 当 :math:`y \in (-\infty, 0)` , 为了避免对 ``Tensor`` 数据进行判断带来性能下降,
15+
``AbsTransform.inverse(y)`` 仍返回 ``(-y, y)`` , 注意这本质上是一个错误结果,仅仅出于
16+
性能考虑。
17+
18+
19+
代码示例
20+
:::::::::
21+
22+
COPY-FROM: paddle.distribution.AbsTransform
23+
24+
方法
25+
:::::::::
26+
27+
forward(x)
28+
'''''''''
29+
30+
计算正变换 :math:`y=f(x)` 的结果。
31+
32+
**参数**
33+
34+
- **x** (Tensor) - 正变换输入参数,通常为 :ref:`cn_api_distribution_Distribution`
35+
的随机采样结果。
36+
37+
**返回**
38+
39+
- **y** (Tensor) - 正变换的计算结果。
40+
41+
42+
inverse(y)
43+
'''''''''
44+
45+
计算逆变换 :math:`x = f^{-1}(y)`
46+
47+
**参数**
48+
49+
- **y** (Tensor) - 逆变换的输入参数。
50+
51+
**返回**
52+
53+
- **x** (Tensor) - 逆变换的计算结果。
54+
55+
forward_log_det_jacobian(x)
56+
'''''''''
57+
58+
计算正变换雅可比行列式绝对值的对数。
59+
60+
如果变换不是一一映射,则雅可比矩阵不存在,返回 ``NotImplementedError`` .
61+
62+
**参数**
63+
64+
- **x** (Tensor) - 输入参数。
65+
66+
**返回**
67+
68+
- Tensor - 正变换雅可比行列式绝对值的对数。
69+
70+
71+
inverse_log_det_jacobian(y)
72+
'''''''''
73+
74+
计算逆变换雅可比行列式绝对值的对数。
75+
76+
与 ``forward_log_det_jacobian`` 互为负数。
77+
78+
**参数**
79+
80+
- **y** (Tensor) - 输入参数。
81+
82+
**返回**
83+
84+
- Tensor - 逆变换雅可比行列式绝对值的对数。
85+
86+
87+
forward_shape(shape)
88+
'''''''''
89+
90+
推断正变换输出形状。
91+
92+
**参数**
93+
94+
- **shape** (Sequence[int]) - 正变换输入的形状。
95+
96+
**返回**
97+
98+
- Sequence[int] - 正变换输出的形状。
99+
100+
101+
inverse_shape(shape)
102+
'''''''''
103+
104+
推断逆变换输出形状。
105+
106+
**参数**
107+
108+
- **shape** (Sequence[int]) - 逆变换输入的形状。
109+
110+
**返回**
111+
112+
- Sequence[int] - 逆变换输出的形状。
113+
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
.. _cn_api_paddle_distribution_AffineTransform:
2+
3+
AffineTransform
4+
-------------------------------
5+
6+
.. py:class:: paddle.distribution.AffineTransform(loc, scale)
7+
8+
仿射变换 :math:`y = loc + scale \times x` .
9+
10+
参数
11+
:::::::::
12+
13+
- **loc** (Tensor) - 表示偏置参数。
14+
- **scale** (Tensor) - 表示缩放参数。
15+
16+
17+
代码示例
18+
:::::::::
19+
20+
COPY-FROM: paddle.distribution.AffineTransform
21+
22+
方法
23+
:::::::::
24+
25+
forward(x)
26+
'''''''''
27+
28+
计算正变换 :math:`y=f(x)` 的结果。
29+
30+
**参数**
31+
32+
- **x** (Tensor) - 正变换输入参数,通常为 :ref:`cn_api_distribution_Distribution`
33+
的随机采样结果。
34+
35+
**返回**
36+
37+
- **y** (Tensor) - 正变换的计算结果。
38+
39+
40+
inverse(y)
41+
'''''''''
42+
43+
计算逆变换 :math:`x = f^{-1}(y)`
44+
45+
**参数**
46+
47+
- **y** (Tensor) - 逆变换的输入参数。
48+
49+
**返回**
50+
51+
- **x** (Tensor) - 逆变换的计算结果。
52+
53+
forward_log_det_jacobian(x)
54+
'''''''''
55+
56+
计算正变换雅可比行列式绝对值的对数。
57+
58+
如果变换不是一一映射,则雅可比矩阵不存在,返回 ``NotImplementedError`` .
59+
60+
**参数**
61+
62+
- **x** (Tensor) - 输入参数。
63+
64+
**返回**
65+
66+
- Tensor - 正变换雅可比行列式绝对值的对数。
67+
68+
69+
inverse_log_det_jacobian(y)
70+
'''''''''
71+
72+
计算逆变换雅可比行列式绝对值的对数。
73+
74+
与 ``forward_log_det_jacobian`` 互为负数。
75+
76+
**参数**
77+
78+
- **y** (Tensor) - 输入参数。
79+
80+
**返回**
81+
82+
- Tensor - 逆变换雅可比行列式绝对值的对数。
83+
84+
85+
forward_shape(shape)
86+
'''''''''
87+
88+
推断正变换输出形状。
89+
90+
**参数**
91+
92+
- **shape** (Sequence[int]) - 正变换输入的形状。
93+
94+
**返回**
95+
96+
- Sequence[int] - 正变换输出的形状。
97+
98+
99+
inverse_shape(shape)
100+
'''''''''
101+
102+
推断逆变换输出形状。
103+
104+
**参数**
105+
106+
- **shape** (Sequence[int]) - 逆变换输入的形状。
107+
108+
**返回**
109+
110+
- Sequence[int] - 逆变换输出的形状。
111+
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
.. _cn_api_paddle_distribution_ChainTransform:
2+
3+
ChainTransform
4+
-------------------------------
5+
6+
.. py:class:: paddle.distribution.ChainTransform(transforms)
7+
8+
变换的链式组合。
9+
10+
``ChainTransform`` 将一些列变换以链式组合方式作用于一个随机变量,计算变换后的结果。
11+
12+
参数
13+
:::::::::
14+
15+
- **transforms** (Sequence[Transform]) - 输入的变换序列。
16+
17+
18+
代码示例
19+
:::::::::
20+
21+
COPY-FROM: paddle.distribution.ChainTransform
22+
23+
方法
24+
:::::::::
25+
26+
forward(x)
27+
'''''''''
28+
29+
计算正变换 :math:`y=f(x)` 的结果。
30+
31+
**参数**
32+
33+
- **x** (Tensor) - 正变换输入参数,通常为 :ref:`cn_api_distribution_Distribution`
34+
的随机采样结果。
35+
36+
**返回**
37+
38+
- **y** (Tensor) - 正变换的计算结果。
39+
40+
41+
inverse(y)
42+
'''''''''
43+
44+
计算逆变换 :math:`x = f^{-1}(y)`
45+
46+
**参数**
47+
48+
- **y** (Tensor) - 逆变换的输入参数。
49+
50+
**返回**
51+
52+
- **x** (Tensor) - 逆变换的计算结果。
53+
54+
forward_log_det_jacobian(x)
55+
'''''''''
56+
57+
计算正变换雅可比行列式绝对值的对数。
58+
59+
如果变换不是一一映射,则雅可比矩阵不存在,返回 ``NotImplementedError`` .
60+
61+
**参数**
62+
63+
- **x** (Tensor) - 输入参数。
64+
65+
**返回**
66+
67+
- Tensor - 正变换雅可比行列式绝对值的对数。
68+
69+
70+
inverse_log_det_jacobian(y)
71+
'''''''''
72+
73+
计算逆变换雅可比行列式绝对值的对数。
74+
75+
与 ``forward_log_det_jacobian`` 互为负数。
76+
77+
**参数**
78+
79+
- **y** (Tensor) - 输入参数。
80+
81+
**返回**
82+
83+
- Tensor - 逆变换雅可比行列式绝对值的对数。
84+
85+
86+
forward_shape(shape)
87+
'''''''''
88+
89+
推断正变换输出形状。
90+
91+
**参数**
92+
93+
- **shape** (Sequence[int]) - 正变换输入的形状。
94+
95+
**返回**
96+
97+
- Sequence[int] - 正变换输出的形状。
98+
99+
100+
inverse_shape(shape)
101+
'''''''''
102+
103+
推断逆变换输出形状。
104+
105+
**参数**
106+
107+
- **shape** (Sequence[int]) - 逆变换输入的形状。
108+
109+
**返回**
110+
111+
- Sequence[int] - 逆变换输出的形状。
112+

0 commit comments

Comments
 (0)