Skip to content

Commit 4997b2c

Browse files
[API Compatibility] Add 48 apis:complex, polar, cat, stack, swapaxes, swapdims, where, clamp, clip, cos, floor, log, mul, multiply, pow, rsqrt, sign, sin, eq, gt, view_as_real, view_as_complex, ger, Tensor.mul_, Tensor.swapaxes, Tensor.swapdims, autograd.Function, take_along_dim, Tensor.take_along_dim, linalg.matmul, special.logsumexp, argwhere, concatenate, is_autocast_enabled, get_autocast_gpu_dtype, cumsum, diff, Tensor.scatter_add_, msort, broadcast_shapes, tril, triu, bmm, nn.GELU, nn.functional.silu, Tensor.ravel, Tensor.scatter_add, Tensor.scatter_reduce (PaddlePaddle#7410)
* Finish 48 apis * Add Overview rst * Fix label parse error * Refine * Refine label * Refine on comment * Relace * with \* * Refine on comments * Revert "Relace * with \*" This reverts commit da478bb. * Refine on comment
1 parent 622f8fa commit 4997b2c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+526
-39
lines changed

docs/api/paddle/Overview_cn.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ tensor 数学操作
5252
" :ref:`paddle.atan2 <cn_api_paddle_atan2>` ", "arctangent2 函数"
5353
" :ref:`paddle.baddbmm <cn_api_paddle_baddbmm>` ", "对两个批量矩阵 x 和 y 进行乘法运算,将结果乘以标量 alpha,再加上 input 与 beta 的乘积,得到输出"
5454
" :ref:`paddle.ceil <cn_api_paddle_ceil>` ", "向上取整运算函数"
55+
" :ref:`paddle.clamp <cn_api_paddle_clamp>` ", "将输入的所有元素进行剪裁,使得输出元素限制在[min, max]内"
5556
" :ref:`paddle.clip <cn_api_paddle_clip>` ", "将输入的所有元素进行剪裁,使得输出元素限制在[min, max]内"
5657
" :ref:`paddle.conj <cn_api_paddle_conj>` ", "逐元素计算 Tensor 的共轭运算"
5758
" :ref:`paddle.cos <cn_api_paddle_cos>` ", "余弦函数"
@@ -65,6 +66,7 @@ tensor 数学操作
6566
" :ref:`paddle.digamma <cn_api_paddle_digamma>` ", "逐元素计算输入 x 的 digamma 函数值"
6667
" :ref:`paddle.div <cn_api_paddle_div>` ", "逐元素相除算子"
6768
" :ref:`paddle.divide <cn_api_paddle_divide>` ", "逐元素相除算子"
69+
" :ref:`paddle.eq <cn_api_paddle_eq>` ", "返回 x==y 逐元素比较 x 和 y 是否相等,相同位置的元素相同则返回 True,否则返回 False"
6870
" :ref:`paddle.equal <cn_api_paddle_equal>` ", "返回 x==y 逐元素比较 x 和 y 是否相等,相同位置的元素相同则返回 True,否则返回 False"
6971
" :ref:`paddle.equal_all <cn_api_paddle_equal_all>` ", "如果所有相同位置的元素相同返回 True,否则返回 False"
7072
" :ref:`paddle.erf <cn_api_paddle_erf>` ", "逐元素计算 Erf 激活函数"
@@ -78,6 +80,7 @@ tensor 数学操作
7880
" :ref:`paddle.gammainc <cn_api_paddle_gammainc>` ", "计算正则化下不完全伽玛函数"
7981
" :ref:`paddle.gammaln <cn_api_paddle_gammaln>` ", "逐元素计算输入 x 的伽马函数的绝对值的自然对数"
8082
" :ref:`paddle.greater_equal <cn_api_paddle_greater_equal>` ", "逐元素地返回 x>=y 的逻辑值"
83+
" :ref:`paddle.gt <cn_api_paddle_gt>` ", "逐元素地返回 x>y 的逻辑值"
8184
" :ref:`paddle.greater_than <cn_api_paddle_greater_than>` ", "逐元素地返回 x>y 的逻辑值"
8285
" :ref:`paddle.heaviside <cn_api_paddle_heaviside>` ", "逐元素地对 x 计算由 y 中的对应元素决定的赫维赛德阶跃函数"
8386
" :ref:`paddle.increment <cn_api_paddle_increment>` ", "在控制流程中用来让 x 的数值增加 value"
@@ -115,6 +118,8 @@ tensor 数学操作
115118
" :ref:`paddle.mm <cn_api_paddle_mm>` ", "用于两个输入矩阵的相乘"
116119
" :ref:`paddle.inner <cn_api_paddle_inner>` ", "计算两个输入矩阵的内积"
117120
" :ref:`paddle.outer <cn_api_paddle_outer>` ", "计算两个输入矩阵的外积"
121+
" :ref:`paddle.ger <cn_api_paddle_ger>` ", "计算两个输入矩阵的外积"
122+
" :ref:`paddle.mul <cn_api_paddle_mul>` ", "逐元素相乘算子"
118123
" :ref:`paddle.multiplex <cn_api_paddle_multiplex>` ", "从每个输入 Tensor 中选择特定行构造输出 Tensor"
119124
" :ref:`paddle.multiply <cn_api_paddle_multiply>` ", "逐元素相乘算子"
120125
" :ref:`paddle.ldexp <cn_api_paddle_ldexp>` ", "计算 x 乘以 2 的 y 次幂"
@@ -157,6 +162,7 @@ tensor 数学操作
157162
" :ref:`paddle.frac <cn_api_paddle_frac>` ", "得到输入 Tensor 每个元素的小数部分"
158163
" :ref:`paddle.log1p <cn_api_paddle_log1p>` ", "计算 Log1p(加一的自然对数)结果"
159164
" :ref:`paddle.take_along_axis <cn_api_paddle_take_along_axis>` ", "根据 axis 和 index 获取输入 Tensor 的对应元素"
165+
" :ref:`paddle.take_along_dim <cn_api_paddle_take_along_dim>` ", "根据 axis 和 index 获取输入 Tensor 的对应元素"
160166
" :ref:`paddle.put_along_axis <cn_api_paddle_put_along_axis>` ", "根据 axis 和 index 放置 value 值至输入 Tensor"
161167
" :ref:`paddle.lerp <cn_api_paddle_lerp>` ", "基于给定的 weight 计算 x 与 y 的线性插值"
162168
" :ref:`paddle.diff <cn_api_paddle_diff>` ", "沿着指定维度对输入 Tensor 计算 n 阶的前向差值"
@@ -323,6 +329,7 @@ tensor 属性相关
323329
" :ref:`paddle.is_complex <cn_api_paddle_is_complex>` ", "判断输入 tensor 的数据类型是否为复数类型"
324330
" :ref:`paddle.is_integer <cn_api_paddle_is_integer>` ", "判断输入 tensor 的数据类型是否为整数类型"
325331
" :ref:`paddle.broadcast_shape <cn_api_paddle_broadcast_shape>` ", "返回对 x_shape 大小的 Tensor 和 y_shape 大小的 Tensor 做 broadcast 操作后得到的 shape"
332+
" :ref:`paddle.broadcast_shapes <cn_api_paddle_broadcast_shapes>` ", "返回对多个 shape 做 broadcast 操作后得到的 shape"
326333
" :ref:`paddle.is_floating_point <cn_api_paddle_is_floating_point>` ", "判断输入 Tensor 的数据类型是否为浮点类型"
327334

328335
.. _tensor_creation:
@@ -379,7 +386,9 @@ tensor 元素查找相关
379386
" :ref:`paddle.kthvalue <cn_api_paddle_kthvalue>` ", "在指定的轴上查找第 k 小的元素和其对应所在的索引信息"
380387
" :ref:`paddle.masked_select <cn_api_paddle_masked_select>` ", "返回一个 1-D 的 Tensor, Tensor 的值是根据 mask 对输入 x 进行选择的"
381388
" :ref:`paddle.nonzero <cn_api_paddle_nonzero>` ", "返回输入 x 中非零元素的坐标"
389+
" :ref:`paddle.argwhere <cn_api_paddle_argwhere>` ", "返回输入 x 中非零元素的坐标"
382390
" :ref:`paddle.sort <cn_api_paddle_sort>` ", "对输入变量沿给定轴进行排序,输出排序好的数据,其维度和输入相同"
391+
" :ref:`paddle.msort <cn_api_paddle_msort>` ", "对输入变量沿第 0 轴进行升序排序,输出排序好的数据,其维度和输入相同"
383392
" :ref:`paddle.searchsorted <cn_api_paddle_searchsorted>` ", "将根据给定的 values 在 sorted_sequence 的最后一个维度查找合适的索引"
384393
" :ref:`paddle.bucketize <cn_api_paddle_bucketize>` ", "将根据给定的一维 Tensor sorted_sequence 返回输入 x 对应的桶索引。"
385394
" :ref:`paddle.topk <cn_api_paddle_topk>` ", "沿着可选的 axis 查找 topk 最大或者最小的结果和结果所在的索引信息"
@@ -491,7 +500,9 @@ tensor 元素操作相关(如:转置,reshape 等)
491500
" :ref:`paddle.cartesian_prod <cn_api_paddle_cartesian_prod>` ", "对输入 Tensor 序列进行笛卡尔积操作"
492501
" :ref:`paddle.cast <cn_api_paddle_cast>` ", "将输入的 x 的数据类型转换为 dtype 并输出"
493502
" :ref:`paddle.chunk <cn_api_paddle_chunk>` ", "将输入 Tensor 分割成多个子 Tensor"
503+
" :ref:`paddle.cat <cn_api_paddle_cat>` ", "对输入沿 axis 轴进行联结,返回一个新的 Tensor"
494504
" :ref:`paddle.concat <cn_api_paddle_concat>` ", "对输入沿 axis 轴进行联结,返回一个新的 Tensor"
505+
" :ref:`paddle.concatenate <cn_api_paddle_concatenate>` ", "对输入沿 axis 轴进行联结,返回一个新的 Tensor"
495506
" :ref:`paddle.crop <cn_api_paddle_crop>` ", "根据偏移量(offsets)和形状(shape),裁剪输入(x)Tensor"
496507
" :ref:`paddle.expand <cn_api_paddle_expand>` ", "根据 shape 指定的形状扩展 x ,扩展后, x 的形状和 shape 指定的形状一致"
497508
" :ref:`paddle.expand_as <cn_api_paddle_expand_as>` ", "根据 y 的形状扩展 x ,扩展后, x 的形状和 y 的形状相同"
@@ -521,6 +532,8 @@ tensor 元素操作相关(如:转置,reshape 等)
521532
" :ref:`paddle.strided_slice <cn_api_paddle_strided_slice>` ", "沿多个轴生成 x 的切片"
522533
" :ref:`paddle.tile <cn_api_paddle_tile>` ", "根据参数 repeat_times 对输入 x 的各维度进行复制"
523534
" :ref:`paddle.transpose <cn_api_paddle_transpose>` ", "根据 perm 对输入的多维 Tensor 进行数据重排"
535+
" :ref:`paddle.swapaxes <cn_api_paddle_swapaxes>` ", "根据 perm 对输入的多维 Tensor 进行数据重排"
536+
" :ref:`paddle.swapdims <cn_api_paddle_swapdims>` ", "根据 perm 对输入的多维 Tensor 进行数据重排"
524537
" :ref:`paddle.moveaxis <cn_api_paddle_moveaxis>` ", "移动 Tensor 的轴,根据移动之后的轴对输入的多维 Tensor 进行数据重排"
525538
" :ref:`paddle.tensordot <cn_api_paddle_tensordot>` ", "沿多个轴对输入的 x 和 y 进行 Tensor 缩并操作"
526539
" :ref:`paddle.unbind <cn_api_paddle_unbind>` ", "将输入 Tensor 按照指定的维度分割成多个子 Tensor"
@@ -530,6 +543,8 @@ tensor 元素操作相关(如:转置,reshape 等)
530543
" :ref:`paddle.unstack <cn_api_paddle_unstack>` ", "将单个 dim 为 D 的 Tensor 沿 axis 轴 unpack 为 num 个 dim 为 (D-1) 的 Tensor"
531544
" :ref:`paddle.as_complex <cn_api_paddle_as_complex>` ", "将实数 Tensor 转为复数 Tensor"
532545
" :ref:`paddle.as_real <cn_api_paddle_as_real>` ", "将复数 Tensor 转为实数 Tensor"
546+
" :ref:`paddle.view_as_complex <cn_api_paddle_view_as_complex>` ", "从实数 Tensor 获取复数 Tensor 视图"
547+
" :ref:`paddle.view_as_real <cn_api_paddle_view_as_real>` ", "从复数 Tensor 获取实数 Tensor 视图"
533548
" :ref:`paddle.repeat_interleave <cn_api_paddle_repeat_interleave>` ", "沿 axis 轴对输入 x 的元素进行复制"
534549
" :ref:`paddle.index_add <cn_api_paddle_index_add>` ", "沿着指定轴 axis 将 index 中指定位置的 x 与 value 相加,并写入到结果 Tensor 中的对应位置"
535550
" :ref:`paddle.index_put <cn_api_paddle_index_put>` ", "构造一个与 x 完全相同的 Tensor,并依据 indices 中指定的索引将 value 的值对应的放置其中,随后输出"

docs/api/paddle/Tensor_cn.rst

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2188,6 +2188,11 @@ mode(axis=-1, keepdim=False, name=None)
21882188

21892189
请参考 :ref:`cn_api_paddle_mode`
21902190

2191+
mul_(y, name=None)
2192+
:::::::::
2193+
2194+
``multiply`` 的 inplace 版本,请参考 :ref:`cn_api_paddle_multiply`
2195+
21912196
multiplex(index)
21922197
:::::::::
21932198

@@ -2462,6 +2467,15 @@ reshape(shape, name=None)
24622467

24632468
请参考 :ref:`cn_api_paddle_reshape`
24642469

2470+
ravel()
2471+
:::::::::
2472+
2473+
返回:展平且连续的 Tensor,如无必要,不会进行内存拷贝,即返回值于原始 Tensor 共享同一片内存。
2474+
2475+
返回类型:Tensor
2476+
2477+
请参考 :ref:`cn_api_paddle_reshape`
2478+
24652479
reshape_(shape, name=None)
24662480
:::::::::
24672481

@@ -2532,6 +2546,20 @@ scatter_(index, updates, overwrite=True, name=None)
25322546

25332547
Inplace 版本的 :ref:`cn_api_paddle_scatter` API,对输入 `x` 采用 Inplace 策略。
25342548

2549+
scatter_add(index, updates, overwrite=True, name=None)
2550+
:::::::::
2551+
2552+
``put_along_axis`` 的别名
2553+
2554+
请参考 :ref:`cn_api_paddle_put_along_axis`
2555+
2556+
scatter_add_(index, updates, overwrite=True, name=None)
2557+
:::::::::
2558+
2559+
``put_along_axis_`` 的别名
2560+
2561+
请参考 :ref:`cn_api_paddle_put_along_axis_`
2562+
25352563
scatter_nd(updates, shape, name=None)
25362564
:::::::::
25372565

@@ -2550,6 +2578,13 @@ scatter_nd_add(index, updates, name=None)
25502578

25512579
请参考 :ref:`cn_api_paddle_scatter_nd_add`
25522580

2581+
scatter_reduce(dim, index, src, reduce, \*, include_self=True)
2582+
:::::::::
2583+
2584+
``put_along_axis`` 的别名
2585+
2586+
请参考 :ref:`cn_api_paddle_put_along_axis`
2587+
25532588
set_value(value)
25542589
:::::::::
25552590

@@ -2804,6 +2839,24 @@ sum(axis=None, dtype=None, keepdim=False, name=None)
28042839

28052840
请参考 :ref:`cn_api_paddle_sum`
28062841

2842+
swapaxes(perm, name=None)
2843+
:::::::::
2844+
2845+
返回:计算后的 Tensor
2846+
2847+
返回类型:Tensor
2848+
2849+
请参考 :ref:`cn_api_paddle_swapaxes`
2850+
2851+
swapdims(perm, name=None)
2852+
:::::::::
2853+
2854+
返回:计算后的 Tensor
2855+
2856+
返回类型:Tensor
2857+
2858+
请参考 :ref:`cn_api_paddle_swapdims`
2859+
28072860
t(name=None)
28082861
:::::::::
28092862

@@ -3124,6 +3177,17 @@ take_along_axis(indices, axis, broadcast=True)
31243177

31253178
请参考 :ref:`cn_api_paddle_take_along_axis`
31263179

3180+
take_along_dim(indices, axis, broadcast=True)
3181+
:::::::::
3182+
3183+
基于输入索引矩阵 indices,沿着指定 axis 从输入 tensor 里选取 1d 切片。索引矩阵必须和输入 tensor 有相同的维度,需要能够 broadcast 与 tensor 对齐。
3184+
3185+
返回:计算后的 Tensor
3186+
3187+
返回类型:Tensor
3188+
3189+
请参考 :ref:`cn_api_paddle_take_along_dim`
3190+
31273191
put_along_axis(indices, value, axis, reduce="assign", include_self=True, broadcast=True)
31283192
:::::::::
31293193

docs/api/paddle/argwhere_cn.rst

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
.. _cn_api_paddle_argwhere:
2+
3+
argwhere
4+
-------------------------------
5+
6+
.. py:function:: paddle.argwhere(input)
7+
8+
9+
10+
11+
返回输入 ``x`` 中非零元素的坐标。如果输入 ``x`` 有 ``n`` 维,共包含 ``z`` 个非零元素,返回结果是一个 ``shape`` 等于 ``[z x n]`` 的 ``Tensor``,第 ``i`` 行代表输入中第 ``i`` 个非零元素的坐标。
12+
13+
参数
14+
:::::::::
15+
16+
- **input** (Tensor)– 输入的 Tensor。
17+
18+
19+
20+
返回
21+
:::::::::
22+
- **Tensor(1-D Tensor)**,数据类型为 **INT64** 。
23+
24+
25+
26+
代码示例
27+
:::::::::
28+
29+
COPY-FROM: paddle.argwhere
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.. _cn_api_paddle_autograd_Function:
2+
3+
Function
4+
-------------------------------
5+
6+
.. py:class:: paddle.autograd.Function
7+
8+
``paddle.autograd.PyLayer`` 的别名,请参考 :ref:`cn_api_paddle_autograd_PyLayer`。

docs/api/paddle/autograd/Overview_cn.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,5 @@ paddle.autograd 目录下包含飞桨框架支持的自动微分相关的 API
3333
:widths: 10, 30
3434

3535
" :ref:`PyLayer <cn_api_paddle_autograd_PyLayer>` ", "通过创建 ``PyLayer`` 子类的方式实现 Python 端自定义算子"
36+
" :ref:`Function <cn_api_paddle_autograd_Function>` ", "``PyLayer`` 的别名"
3637
" :ref:`PyLayerContext <cn_api_paddle_autograd_PyLayerContext>` ", "``PyLayerContext`` 对象能够辅助 :ref:`cn_api_paddle_autograd_PyLayer` 实现某些功能"

docs/api/paddle/bmm_cn.rst

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
bmm
44
-------------------------------
55

6-
.. py:function:: paddle.bmm(x, y, name=None)
6+
.. py:function:: paddle.bmm(x, y, name=None, *, out=None)
77
88
99
@@ -17,10 +17,15 @@ bmm
1717
参数
1818
:::::::::
1919

20-
- **x** (Tensor) - 输入变量,类型为 Tensor。
21-
- **y** (Tensor) - 输入变量,类型为 Tensor。
20+
- **x** (Tensor) - 输入变量,类型为 Tensor。别名 ``input``。
21+
- **y** (Tensor) - 输入变量,类型为 Tensor。别名 ``other``。
2222
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。
2323

24+
关键字参数
25+
:::::::::
26+
27+
- **out** (Tensor,可选) - 输出 Tensor,若不为 ``None``,计算结果将保存在该 Tensor 中,默认值为 ``None``。
28+
2429
返回
2530
:::::::::
2631
Tensor,矩阵相乘后的结果。
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
.. _cn_api_paddle_broadcast_shapes:
2+
3+
broadcast_shapes
4+
-------------------------------
5+
6+
.. py:function:: paddle.broadcast_shapes(*shapes: Sequence[int])
7+
8+
计算多个 Tensor shape 经过广播(broadcasting)之后的结果 shape。
9+
10+
11+
参数
12+
::::::::::::
13+
14+
- **shapes** (Sequence[int]) - 一个或多个 Tensor 的 shape。每个 shape 都是一个整数序列(List 或 Tuple)。
15+
16+
返回
17+
::::::::::::
18+
list[int],广播后的结果 shape。
19+
20+
21+
代码示例
22+
::::::::::::
23+
24+
COPY-FROM: paddle.broadcast_shapes

docs/api/paddle/cat_cn.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.. _cn_api_paddle_cat:
2+
3+
cat
4+
-------------------------------
5+
6+
.. py:function:: paddle.cat(x, axis=0, name=None, *, out=None)
7+
8+
``concat`` 的别名,请参考 :ref:`cn_api_paddle_concat`。

docs/api/paddle/clamp_cn.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.. _cn_api_paddle_clamp:
2+
3+
clamp
4+
-------------------------------
5+
6+
.. py:function:: paddle.clamp(x, min=None, max=None, name=None, *, out=None)
7+
8+
``clip`` 的别名,请参考 :ref:`cn_api_paddle_clip`。

docs/api/paddle/complex_cn.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
complex
44
-------------------------------
55

6-
.. py:function:: paddle.complex(real, imag, name=None)
6+
.. py:function:: paddle.complex(real, imag, name=None, *, out=None)
77
88
99
给定实部和虚部,返回一个复数 Tensor。
@@ -15,6 +15,11 @@ complex
1515
- **imag** (Tensor) - 虚部,数据类型和 ``real`` 相同。
1616
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。
1717

18+
关键字参数
19+
:::::::::
20+
21+
- **out** (Tensor,可选) - 输出 Tensor,若不为 ``None``,计算结果将保存在该 Tensor 中,默认值为 ``None``。
22+
1823
返回
1924
:::::::::
2025
输出 Tensor,数据类型是 complex64 或者 complex128,与 ``real`` 和 ``imag`` 的数值精度一致。

0 commit comments

Comments
 (0)