Skip to content

[Question] Tensor inplace-api 的使用方式与文档展示 #63330

Open
@ooooo-create

Description

请提出你的问题 Please ask your question

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

api 文档现状(对于Tensor 相关)

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

- paddle
    - amp
        - ...
    - ...
    - add_cn.rst
    - add__cn.rst
    - ...
    - Tensor_cn.rst
    - ...
# 所有 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 "<stdin>", line 1, in <module>
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_

Metadata

Labels

PFCCPaddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfccstatus/following-up跟进中type/docs文档问题

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions