[Question] Tensor inplace-api 的使用方式与文档展示 (original) (raw)

请提出你的问题 Please ask your question

参照 issue63054,此 issue 展示了中文 api 文档下的 paddle.flatten_ 无法使用的问题。透露出两个问题,一个是 api 文档对于 inplace-api 是如何进行展示的,以及 inplace-api 是否需要暴露在 paddle 下。

中文 api 文档,通过 rst 文件手动撰写 api 文档。其中对于 paddle 下的 api (包括 inplace-api),都是存放在 paddle 目录下。

所有 inplace-api 在文档中都是暴露在 paddle 下

而英文 api 文档目前通过不同模块和文件中的 _all_ 属性中的元素进行公开文档展示(添加到 _all_ 才会展示在官网中)

python模块中的__all__,用于模块导入时限制,如:from module import *。paddle 借用此进行公开 api 管理

<Paddle\python\paddle__init__.py> ... all = [ 'iinfo', ... 'cos', 'add', ... ] ...

导入 init.py(以及没有导入) 却没有加入 all 的 api 文档展示在 paddle.Tensor 下

inpalce-api 使用方式

通过 dir(paddle) 以及 dir(paddle.Tensor) 发现些许 inplace-api 并没有暴露到 paddle 下(没有导入在 paddle 的 __init__.py 中).

import paddle a = paddle.to_tensor([1]) paddle.add_(a,20) Traceback (most recent call last): File "", line 1, in AttributeError: module 'paddle' has no attribute 'add_'. Did you mean: 'add'?

如果需要暴露,是不是所有 inpalce-api 都需要暴露到 paddle 下(需要补全未暴露的)

pytorch 的 inplace-api 是不会通过 torch.[inplace-api] 使用的

问题

  1. inplace-api 的使用方式
  2. 以及文档展示的 inplace-api 使用方式

api 列表

tensor inplace api 英文文档是否展示在paddle下 paddle.[inplace]是否可以使用
acosh_
add_
apply_
asin_
asinh_
atanh_
ceil_
clip_
copy_
cosh_
detach_
erfinv_
exp_
exponential_
fill_
fill_diagonal_
fill_diagonal_tensor_
flatten_
floor_
grad_
lerp_
log1p_
logical_xor_
not_equal_
put_along_axis_
reciprocal_
reconstruct_from_
round_
rsqrt_
scale_
sigmoid_
sqrt_
subtract_
uniform_
zero_