From 05dfd5455f2af52849b4002fde8d78290e9e19b7 Mon Sep 17 00:00:00 2001 From: fufu <2871640030@qq.com> Date: Wed, 11 Sep 2024 21:06:42 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=8F=90=E5=8F=96intitle?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci_scripts/check_api_parameters.py | 41 +++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/ci_scripts/check_api_parameters.py b/ci_scripts/check_api_parameters.py index 92d91d0256a..bde80ecd535 100644 --- a/ci_scripts/check_api_parameters.py +++ b/ci_scripts/check_api_parameters.py @@ -59,8 +59,39 @@ def _check_params_in_description(rstfilename, paramstr): params_intitle = [] if paramstr: fake_func = ast.parse(f"def fake_func({paramstr}): pass") - for arg in fake_func.body[0].args.args: + # Iterate over all intitle parameters + num_defaults = len(fake_func.body[0].args.defaults) + num_args = len(fake_func.body[0].args.args) + # args & defaults + for i, arg in enumerate(fake_func.body[0].args.args): + if i >= num_args - num_defaults: + default_value = ast.dump( + fake_func.body[0].args.defaults[ + i - (num_args - num_defaults) + ] + ) + params_intitle.append(f"{arg.arg}={default_value}") + else: + params_intitle.append(arg.arg) + # posonlyargs + for arg in fake_func.body[0].args.posonlyargs: params_intitle.append(arg.arg) + # vararh(*args) + if fake_func.body[0].args.vararg: + params_intitle.append(fake_func.body[0].args.vararg.arg) + # kwonlyargs & kw_defaults + for i, arg in enumerate(fake_func.body[0].args.kwonlyargs): + if ( + i < len(fake_func.body[0].args.kw_defaults) + and fake_func.body[0].args.kw_defaults[i] is not None + ): + default_value = ast.dump(fake_func.body[0].args.kw_defaults[i]) + params_intitle.append(f"{arg.arg}={default_value}") + else: + params_intitle.append(arg.arg) + # **kwargs + if fake_func.body[0].args.kwarg: + params_intitle.append(fake_func.body[0].args.kwarg.arg) funcdescnode = extract_params_desc_from_rst_file(rstfilename) if funcdescnode: @@ -71,7 +102,9 @@ def _check_params_in_description(rstfilename, paramstr): else: for i in range(len(items)): pname_intitle = params_intitle[i].split("=")[0].strip() - mo = re.match(r"(\w+)\b.*", items[i].children[0].astext()) + mo = re.match( + r"\*{0,2}(\w+)\b.*", items[i].children[0].astext() + ) if mo: pname_indesc = mo.group(1) if pname_indesc != pname_intitle: @@ -106,7 +139,9 @@ def _check_params_in_description_with_fullargspec(rstfilename, funcname): else: for i in range(len(items)): pname_intitle = params_inspec[i] - mo = re.match(r"(\w+)\b.*", items[i].children[0].astext()) + mo = re.match( + r"\*{0,2}(\w+)\b.*", items[i].children[0].astext() + ) if mo: pname_indesc = mo.group(1) if pname_indesc != pname_intitle: From b3b266d8dbff5dc815466b385fc4db4dcc196129 Mon Sep 17 00:00:00 2001 From: fufu <2871640030@qq.com> Date: Thu, 12 Sep 2024 22:44:26 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9B=B4=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E7=9A=84=E6=96=87=E6=A1=A3=E5=8F=82=E6=95=B0=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci_scripts/check_api_parameters.py | 54 +++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/ci_scripts/check_api_parameters.py b/ci_scripts/check_api_parameters.py index bde80ecd535..e098feb487f 100644 --- a/ci_scripts/check_api_parameters.py +++ b/ci_scripts/check_api_parameters.py @@ -56,6 +56,7 @@ def parse_args(): def _check_params_in_description(rstfilename, paramstr): flag = True + info = "" params_intitle = [] if paramstr: fake_func = ast.parse(f"def fake_func({paramstr}): pass") @@ -96,8 +97,18 @@ def _check_params_in_description(rstfilename, paramstr): funcdescnode = extract_params_desc_from_rst_file(rstfilename) if funcdescnode: items = funcdescnode.children[1].children[0].children - if len(items) != len(params_intitle): + list_pat = r"^.*$" + if not re.match(list_pat, str(items[0])): flag = False + info = "Something wrong with the format of params list in description, check it please." + elif len(items) != len(params_intitle): + flag = False + if not items: + info = ( + "Params section in description is empty, check it please." + ) + else: + info = f"The number of params in title does not match the params in description: {len(params_intitle)} != {len(items)}." print(f"check failed (parammeters description): {rstfilename}") else: for i in range(len(items)): @@ -109,25 +120,29 @@ def _check_params_in_description(rstfilename, paramstr): pname_indesc = mo.group(1) if pname_indesc != pname_intitle: flag = False + info = f"the following param in title does not match the param in description: {pname_intitle} != {pname_indesc}." print( - f"check failed (parammeters description): {rstfilename}, {pname_indesc} != {pname_intitle}" + f"check failed (parammeters description): {rstfilename}, {pname_intitle} != {pname_indesc}" ) else: flag = False + info = f"param name '{pname_intitle}' not matched in description line{i+1}, check it please." print( f"check failed (parammeters description): {rstfilename}, param name not found in {i} paragraph." ) else: if params_intitle: + info = "params section not found in description, check it please." print( f"check failed (parameters description not found): {rstfilename}, {params_intitle}." ) flag = False - return flag + return flag, info def _check_params_in_description_with_fullargspec(rstfilename, funcname): flag = True + info = "" funcspec = inspect.getfullargspec(eval(funcname)) funcdescnode = extract_params_desc_from_rst_file(rstfilename) if funcdescnode: @@ -135,6 +150,7 @@ def _check_params_in_description_with_fullargspec(rstfilename, funcname): params_inspec = funcspec.args if len(items) != len(params_inspec): flag = False + info = f"check_with_fullargspec failed (parammeters description): {rstfilename}" print(f"check failed (parammeters description): {rstfilename}") else: for i in range(len(items)): @@ -146,21 +162,24 @@ def _check_params_in_description_with_fullargspec(rstfilename, funcname): pname_indesc = mo.group(1) if pname_indesc != pname_intitle: flag = False + info = f"the following param in title does not match the param in description: {pname_intitle} != {pname_indesc}." print( - f"check failed (parammeters description): {rstfilename}, {pname_indesc} != {pname_intitle}" + f"check failed (parammeters description): {rstfilename}, {pname_intitle} != {pname_indesc}" ) else: flag = False + info = f"param name '{pname_intitle}' not matched in description line{i+1}, check it please." print( f"check failed (parammeters description): {rstfilename}, param name not found in {i} paragraph." ) else: if funcspec.args: + info = "params section not found in description, check it please." print( f"check failed (parameters description not found): {rstfilename}, {funcspec.args}." ) flag = False - return flag + return flag, info def check_api_parameters(rstfiles, apiinfo): @@ -176,8 +195,8 @@ def check_api_parameters(rstfiles, apiinfo): r"^\.\.\s+py:(method|function|class)::\s+(\S+)\s*\(\s*(.*)\s*\)\s*$" ) check_passed = [] - check_failed = [] - api_notfound = [] + check_failed = {} + api_notfound = {} for rstfile in rstfiles: rstfilename = osp.join("../docs", rstfile) print(f"checking : {rstfile}") @@ -206,22 +225,24 @@ def check_api_parameters(rstfiles, apiinfo): print( f"check func:{funcname} in {rstfilename} with {paramstr}" ) - flag = _check_params_in_description( + flag, info = _check_params_in_description( rstfilename, paramstr ) else: print( f'check func:{funcname} in {rstfilename} with {paramstr}, but different with json\'s {apiobj["args"]}' ) - flag = _check_params_in_description( + flag, info = _check_params_in_description( rstfilename, paramstr ) else: # paddle.abs class_method does not have `args` in its json item. print( f"check func:{funcname} in {rstfilename} with its FullArgSpec" ) - flag = _check_params_in_description_with_fullargspec( - rstfilename, funcname + flag, info = ( + _check_params_in_description_with_fullargspec( + rstfilename, funcname + ) ) break if not func_found_in_json: # may be inner functions @@ -235,11 +256,12 @@ def check_api_parameters(rstfiles, apiinfo): check_passed.append(rstfile) print(f"check success: {rstfile}") else: - check_failed.append(rstfile) + check_failed[rstfile] = info print(f"check failed: {rstfile}") break if not func_found: - api_notfound.append(rstfile) + info = 'funcname in title is not found, please check the format of ".. py:function::func()"' + api_notfound[rstfile] = info print(f"check failed (object not found): {rstfile}") print(f"checking done: {rstfile}") return check_passed, check_failed, api_notfound @@ -255,9 +277,11 @@ def check_api_parameters(rstfiles, apiinfo): result = True if check_failed: result = False - print(f"check_api_parameters failed: {check_failed}") + for path, info in check_failed.items(): + print(f"Checking failed file:{path}\nError:{info}\n") if api_notfound: - print(f"check_api_parameters funcname not found in: {api_notfound}") + for path, info in api_notfound.items(): + print(f"Checking failed file:{path}\nError:{info}\n") if result: sys.exit(0) else: From d6f77bffb31bb60d202d3ab4e52087f6203ef698 Mon Sep 17 00:00:00 2001 From: fufu <2871640030@qq.com> Date: Thu, 12 Sep 2024 23:35:28 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=8E=B0=E6=9C=89?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci_scripts/check_api_parameters.py | 2 +- docs/api/paddle/atan2_cn.rst | 6 +++--- docs/api/paddle/bitwise_and_cn.rst | 1 + docs/api/paddle/bitwise_not_cn.rst | 1 + docs/api/paddle/bitwise_or_cn.rst | 1 + docs/api/paddle/bitwise_xor_cn.rst | 1 + docs/api/paddle/deg2rad_cn.rst | 4 ++-- docs/api/paddle/einsum_cn.rst | 4 ++-- docs/api/paddle/erfinv_cn.rst | 4 ++-- docs/api/paddle/expm1_cn.rst | 4 ++-- docs/api/paddle/gcd_cn.rst | 6 +++--- docs/api/paddle/get_cuda_rng_state_cn.rst | 6 ------ docs/api/paddle/get_default_dtype_cn.rst | 7 ------- docs/api/paddle/histogramdd_cn.rst | 2 +- docs/api/paddle/inner_cn.rst | 2 -- docs/api/paddle/is_floating_point_cn.rst | 2 +- docs/api/paddle/lcm_cn.rst | 6 +++--- docs/api/paddle/lerp_cn.rst | 8 ++++---- docs/api/paddle/numel_cn.rst | 2 +- docs/api/paddle/pdist_cn.rst | 2 +- docs/api/paddle/put_along_axis_cn.rst | 14 +++++++------- docs/api/paddle/rad2deg_cn.rst | 4 ++-- docs/api/paddle/reduce_as_cn.rst | 2 +- docs/api/paddle/renorm_cn.rst | 8 ++++---- docs/api/paddle/rot90_cn.rst | 2 +- docs/api/paddle/save_cn.rst | 10 +++++----- docs/api/paddle/select_scatter_cn.rst | 10 +++++----- docs/api/paddle/take_along_axis_cn.rst | 8 ++++---- docs/api/paddle/take_cn.rst | 14 +++++++------- docs/api/paddle/unstack_cn.rst | 6 ++---- 30 files changed, 68 insertions(+), 81 deletions(-) diff --git a/ci_scripts/check_api_parameters.py b/ci_scripts/check_api_parameters.py index e098feb487f..5255abc5cf8 100644 --- a/ci_scripts/check_api_parameters.py +++ b/ci_scripts/check_api_parameters.py @@ -192,7 +192,7 @@ def check_api_parameters(rstfiles, apiinfo): 2. Some COMPLICATED annotations may break the scripts. """ pat = re.compile( - r"^\.\.\s+py:(method|function|class)::\s+(\S+)\s*\(\s*(.*)\s*\)\s*$" + r"^\.\.\s+py:(method|function|class)::\s+([^\s(]+)\s*(?:\(\s*(.*)\s*\))?\s*$" ) check_passed = [] check_failed = {} diff --git a/docs/api/paddle/atan2_cn.rst b/docs/api/paddle/atan2_cn.rst index 8d51b5bc3a6..55f800f35a0 100644 --- a/docs/api/paddle/atan2_cn.rst +++ b/docs/api/paddle/atan2_cn.rst @@ -23,9 +23,9 @@ atan2 参数 ::::::::: -- **x** (Tensor) - 输入的 Tensor,数据类型为:int32、int64、float16、float32、float64。 -- **y** (Tensor) - 输入的 Tensor,数据类型为:int32、int64、float16、float32、float64。 -- **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 + - **x** (Tensor) - 输入的 Tensor,数据类型为:int32、int64、float16、float32、float64。 + - **y** (Tensor) - 输入的 Tensor,数据类型为:int32、int64、float16、float32、float64。 + - **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 返回 ::::::::: diff --git a/docs/api/paddle/bitwise_and_cn.rst b/docs/api/paddle/bitwise_and_cn.rst index 361fa7d22e5..fb98f3ec05b 100644 --- a/docs/api/paddle/bitwise_and_cn.rst +++ b/docs/api/paddle/bitwise_and_cn.rst @@ -20,6 +20,7 @@ bitwise_and - **x** (Tensor)- 输入的 N-D `Tensor`,数据类型为:bool,uint8,int8,int16,int32,int64。 - **y** (Tensor)- 输入的 N-D `Tensor`,数据类型为:bool,uint8,int8,int16,int32,int64。 - **out** (Tensor,可选)- 输出的结果 `Tensor`,是与输入数据类型相同的 N-D `Tensor`。默认值为 None,此时将创建新的 Tensor 来保存输出结果。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::::: diff --git a/docs/api/paddle/bitwise_not_cn.rst b/docs/api/paddle/bitwise_not_cn.rst index 4db95ec3cb3..f273bc5a385 100644 --- a/docs/api/paddle/bitwise_not_cn.rst +++ b/docs/api/paddle/bitwise_not_cn.rst @@ -20,6 +20,7 @@ bitwise_not - **x** (Tensor)- 输入的 N-D `Tensor`,数据类型为:bool,uint8,int8,int16,int32,int64。 - **out** (Tensor,可选)- 输出的结果 `Tensor`,是与输入数据类型相同的 N-D `Tensor`。默认值为 None,此时将创建新的 Tensor 来保存输出结果。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::::: diff --git a/docs/api/paddle/bitwise_or_cn.rst b/docs/api/paddle/bitwise_or_cn.rst index cb53b1e9d43..5c9b6d75585 100644 --- a/docs/api/paddle/bitwise_or_cn.rst +++ b/docs/api/paddle/bitwise_or_cn.rst @@ -21,6 +21,7 @@ bitwise_or - **x** (Tensor)- 输入的 N-D `Tensor`,数据类型为:bool,uint8,int8,int16,int32,int64。 - **y** (Tensor)- 输入的 N-D `Tensor`,数据类型为:bool,uint8,int8,int16,int32,int64。 - **out** (Tensor,可选)- 输出的结果 `Tensor`,是与输入数据类型相同的 N-D `Tensor`。默认值为 None,此时将创建新的 Tensor 来保存输出结果。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::::: diff --git a/docs/api/paddle/bitwise_xor_cn.rst b/docs/api/paddle/bitwise_xor_cn.rst index 979a0e76851..e5d7a9f3fe8 100644 --- a/docs/api/paddle/bitwise_xor_cn.rst +++ b/docs/api/paddle/bitwise_xor_cn.rst @@ -21,6 +21,7 @@ bitwise_xor - **x** (Tensor)- 输入的 N-D `Tensor`,数据类型为:bool,uint8,int8,int16,int32,int64。 - **y** (Tensor)- 输入的 N-D `Tensor`,数据类型为:bool,uint8,int8,int16,int32,int64。 - **out** (Tensor,可选)- 输出的结果 `Tensor`,是与输入数据类型相同的 N-D `Tensor`。默认值为 None,此时将创建新的 Tensor 来保存输出结果。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::::: diff --git a/docs/api/paddle/deg2rad_cn.rst b/docs/api/paddle/deg2rad_cn.rst index 519746fae0c..ed90d946542 100644 --- a/docs/api/paddle/deg2rad_cn.rst +++ b/docs/api/paddle/deg2rad_cn.rst @@ -14,8 +14,8 @@ deg2rad 参数 ::::::::: -- **x** (Tensor) - 输入的 Tensor,数据类型为:int32、int64、float32、float64。 -- **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 + - **x** (Tensor) - 输入的 Tensor,数据类型为:int32、int64、float32、float64。 + - **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 返回 ::::::::: diff --git a/docs/api/paddle/einsum_cn.rst b/docs/api/paddle/einsum_cn.rst index fa748140d1d..52545775c28 100644 --- a/docs/api/paddle/einsum_cn.rst +++ b/docs/api/paddle/einsum_cn.rst @@ -68,9 +68,9 @@ Einsum 求和过程理论上等价于如下四步,但实现中实际执行的 ::::: - **equation** (str):求和标记 + - **equation** (str):求和标记 - **operands** (Tensor, [Tensor, ...]):输入 Tensor + - **operands** (Tensor, [Tensor, ...]):输入 Tensor 返回 ::::: diff --git a/docs/api/paddle/erfinv_cn.rst b/docs/api/paddle/erfinv_cn.rst index 763c344fa44..d92f001eaa4 100644 --- a/docs/api/paddle/erfinv_cn.rst +++ b/docs/api/paddle/erfinv_cn.rst @@ -13,8 +13,8 @@ erfinv 参数 ::::::::: -- **x** (Tensor) - 输入的 Tensor,数据类型为:float16、bfloat16、float32、float64。 -- **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 + - **x** (Tensor) - 输入的 Tensor,数据类型为:float16、bfloat16、float32、float64。 + - **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 返回 ::::::::: diff --git a/docs/api/paddle/expm1_cn.rst b/docs/api/paddle/expm1_cn.rst index 04e6ab2ffe8..4aa5ec3d81a 100644 --- a/docs/api/paddle/expm1_cn.rst +++ b/docs/api/paddle/expm1_cn.rst @@ -16,8 +16,8 @@ expm1 参数 ::::::::: -- **x** (Tensor) - 该 OP 的输入为多维 Tensor。数据类型为:int32、int64、float16、float32、float64、complex64、complex128。 -- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **x** (Tensor) - 该 OP 的输入为多维 Tensor。数据类型为:int32、int64、float16、float32、float64、complex64、complex128。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 ::::::::: diff --git a/docs/api/paddle/gcd_cn.rst b/docs/api/paddle/gcd_cn.rst index a731aecb95b..1d0e315019a 100644 --- a/docs/api/paddle/gcd_cn.rst +++ b/docs/api/paddle/gcd_cn.rst @@ -19,9 +19,9 @@ gcd 参数 ::::::::: -- **x** (Tensor) - 输入的 Tensor,数据类型为:int32,int64。 -- **y** (Tensor) - 输入的 Tensor,数据类型为:int32,int64。 -- **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 + - **x** (Tensor) - 输入的 Tensor,数据类型为:int32,int64。 + - **y** (Tensor) - 输入的 Tensor,数据类型为:int32,int64。 + - **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 返回 ::::::::: diff --git a/docs/api/paddle/get_cuda_rng_state_cn.rst b/docs/api/paddle/get_cuda_rng_state_cn.rst index 3b48345b4c8..6cdbd2263ba 100644 --- a/docs/api/paddle/get_cuda_rng_state_cn.rst +++ b/docs/api/paddle/get_cuda_rng_state_cn.rst @@ -6,12 +6,6 @@ get_cuda_rng_state 获取 cuda 随机数生成器的状态信息。 - -参数 -:::::::::::: - - 无。 - 返回 :::::::::::: diff --git a/docs/api/paddle/get_default_dtype_cn.rst b/docs/api/paddle/get_default_dtype_cn.rst index 76eaa9de0c9..e2a26195601 100644 --- a/docs/api/paddle/get_default_dtype_cn.rst +++ b/docs/api/paddle/get_default_dtype_cn.rst @@ -8,13 +8,6 @@ get_default_dtype 得到当前全局的 dtype。该值初始是 float32。 - -参数 -:::::::::::: - - - 无 - 返回 :::::::::::: string,这个全局 dtype 仅支持 float16、float32、float64。 diff --git a/docs/api/paddle/histogramdd_cn.rst b/docs/api/paddle/histogramdd_cn.rst index 39aa1b79ee4..e279ec8bfbf 100644 --- a/docs/api/paddle/histogramdd_cn.rst +++ b/docs/api/paddle/histogramdd_cn.rst @@ -13,7 +13,7 @@ histogramdd 参数 :::::::::::: - - **input** (Tensor) - 输入多维 Tensor 。 + - **x** (Tensor) - 输入多维 Tensor 。 - **bins** (Tensor[]|int[]|int) - 如果为 Tensor 数组,则表示所有 bin 边界。如果为 int 数组,则表示每个维度中等宽 bin 的数量。如果为 int,则表示所有维度的等宽 bin 数量。默认值为 10 ,表示所有维度的等宽 bin 数量为 10 个。 - **ranges** (float[], 可选) - 表示每个维度中最左边和最右边的 bin 边界。如果为 None ,则将每个尺寸的最小值和最大值设置为最左边和最右边。默认值为 None ,表示自动根据最大值与最小值计算 bin 的边界。 - **density** (bool,可选) - 表示是否计算 density ,如果为 False,结果将包含每个 bin 中的计数(或权重)。如果为 True,则将每个计数(权重)除以总计数(总权重),然后再除以相关 bin 的宽度。默认值为 False ,表示不计算 density 。 diff --git a/docs/api/paddle/inner_cn.rst b/docs/api/paddle/inner_cn.rst index 3e71b3f668d..2c3941c6706 100644 --- a/docs/api/paddle/inner_cn.rst +++ b/docs/api/paddle/inner_cn.rst @@ -13,7 +13,6 @@ inner 参数 :::::::::::: -::::::::: - **x** (Tensor) - 一个 N 维 Tensor 或者标量 Tensor,如果是 N 维 Tensor 最后一个维度长度需要跟 y 保持一致。 - **y** (Tensor) - 一个 N 维 Tensor 或者标量 Tensor,如果是 N 维 Tensor 最后一个维度长度需要跟 x 保持一致。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 @@ -21,7 +20,6 @@ inner 返回 :::::::::::: -::::::::: - Tensor, x、y 的内积结果,Tensor shape 为 x.shape[:-1] + y.shape[:-1]。 代码示例: diff --git a/docs/api/paddle/is_floating_point_cn.rst b/docs/api/paddle/is_floating_point_cn.rst index f72c983479c..763f7c85389 100644 --- a/docs/api/paddle/is_floating_point_cn.rst +++ b/docs/api/paddle/is_floating_point_cn.rst @@ -9,7 +9,7 @@ is_floating_point 参数 ::::::::: -- **x** (Tensor) - 输入的 Tensor。 + - **x** (Tensor) - 输入的 Tensor。 返回 ::::::::: diff --git a/docs/api/paddle/lcm_cn.rst b/docs/api/paddle/lcm_cn.rst index 8f14b09cf47..f87034e9f21 100644 --- a/docs/api/paddle/lcm_cn.rst +++ b/docs/api/paddle/lcm_cn.rst @@ -19,9 +19,9 @@ lcm 参数 ::::::::: -- **x** (Tensor) - 输入的 Tensor,数据类型为:int32,int64。 -- **y** (Tensor) - 输入的 Tensor,数据类型为:int32,int64。 -- **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 + - **x** (Tensor) - 输入的 Tensor,数据类型为:int32,int64。 + - **y** (Tensor) - 输入的 Tensor,数据类型为:int32,int64。 + - **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 返回 ::::::::: diff --git a/docs/api/paddle/lerp_cn.rst b/docs/api/paddle/lerp_cn.rst index 489b982484c..e184d805b82 100644 --- a/docs/api/paddle/lerp_cn.rst +++ b/docs/api/paddle/lerp_cn.rst @@ -11,10 +11,10 @@ lerp 参数 ::::::::: -- **x** (Tensor) - 输入的 Tensor,作为线性插值开始的点,数据类型为:bfloat16、float16、float32、float64。 -- **y** (Tensor) - 输入的 Tensor,作为线性插值结束的点,数据类型为:bfloat16、float16、float32、float64。 -- **weight** (float|Tensor) - 给定的权重值,weight 为 Tensor 时数据类型为:bfloat16、float16、float32、float64。 -- **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 + - **x** (Tensor) - 输入的 Tensor,作为线性插值开始的点,数据类型为:bfloat16、float16、float32、float64。 + - **y** (Tensor) - 输入的 Tensor,作为线性插值结束的点,数据类型为:bfloat16、float16、float32、float64。 + - **weight** (float|Tensor) - 给定的权重值,weight 为 Tensor 时数据类型为:bfloat16、float16、float32、float64。 + - **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 返回 ::::::::: diff --git a/docs/api/paddle/numel_cn.rst b/docs/api/paddle/numel_cn.rst index 2520fd3c6ea..d2f3899bee0 100644 --- a/docs/api/paddle/numel_cn.rst +++ b/docs/api/paddle/numel_cn.rst @@ -3,7 +3,7 @@ numel ------------------------------- -.. py:function:: paddle.numel(x) +.. py:function:: paddle.numel(x, name=None) 返回 shape 为[]的 0-D Tensor,其值为输入 Tensor 中元素的个数。 diff --git a/docs/api/paddle/pdist_cn.rst b/docs/api/paddle/pdist_cn.rst index dcc07acfecb..b0e3cfd6c7e 100644 --- a/docs/api/paddle/pdist_cn.rst +++ b/docs/api/paddle/pdist_cn.rst @@ -3,7 +3,7 @@ pdist ------------------------------- -.. py:function:: paddle.pdist(x, p=2.0, name=None): +.. py:function:: paddle.pdist(x, p=2.0, name=None) 计算输入形状为 N x M 的 Tensor 中 N 个向量两两组合(pairwise)的 p 范数。 diff --git a/docs/api/paddle/put_along_axis_cn.rst b/docs/api/paddle/put_along_axis_cn.rst index 67a4922034c..5eb484c421e 100644 --- a/docs/api/paddle/put_along_axis_cn.rst +++ b/docs/api/paddle/put_along_axis_cn.rst @@ -9,13 +9,13 @@ put_along_axis 参数 ::::::::: -- **arr** (Tensor) - 输入的 Tensor 作为目标矩阵,数据类型为:float32、float64。 -- **indices** (Tensor) - 索引矩阵,包含沿轴提取 1d 切片的下标,必须和 arr 矩阵有相同的维度,需要能够 broadcast 与 arr 矩阵对齐,数据类型为:int、int64。 -- **value** (float)- 需要插入的值,形状和维度需要能够被 broadcast 与 indices 矩阵匹配,数据类型为:float32、float64。 -- **axis** (int) - 指定沿着哪个维度获取对应的值,数据类型为:int。 -- **reduce** (str,可选) - 归约操作类型,默认为 ``assign``,可选为 ``add``、 ``multiple``、 ``mean``、 ``amin``、 ``amax``。不同的规约操作插入值 value 对于输入矩阵 arr 会有不同的行为,如为 ``assgin`` 则覆盖输入矩阵, ``add`` 则累加至输入矩阵, ``mean`` 则计算累计平均值至输入矩阵, ``multiple`` 则累乘至输入矩阵, ``amin`` 则计算累计最小值至输入矩阵, ``amax`` 则计算累计最大值至输入矩阵。 -- **include_self** (bool,可选) - 规约时是否包含 arr 的元素,默认为 ``True``。 -- **broadcast** (bool,可选) - 是否广播 ``index`` 矩阵,默认为 ``True``。 + - **arr** (Tensor) - 输入的 Tensor 作为目标矩阵,数据类型为:float32、float64。 + - **indices** (Tensor) - 索引矩阵,包含沿轴提取 1d 切片的下标,必须和 arr 矩阵有相同的维度,需要能够 broadcast 与 arr 矩阵对齐,数据类型为:int、int64。 + - **values** (float)- 需要插入的值,形状和维度需要能够被 broadcast 与 indices 矩阵匹配,数据类型为:float32、float64。 + - **axis** (int) - 指定沿着哪个维度获取对应的值,数据类型为:int。 + - **reduce** (str,可选) - 归约操作类型,默认为 ``assign``,可选为 ``add``、 ``multiple``、 ``mean``、 ``amin``、 ``amax``。不同的规约操作插入值 value 对于输入矩阵 arr 会有不同的行为,如为 ``assgin`` 则覆盖输入矩阵, ``add`` 则累加至输入矩阵, ``mean`` 则计算累计平均值至输入矩阵, ``multiple`` 则累乘至输入矩阵, ``amin`` 则计算累计最小值至输入矩阵, ``amax`` 则计算累计最大值至输入矩阵。 + - **include_self** (bool,可选) - 规约时是否包含 arr 的元素,默认为 ``True``。 + - **broadcast** (bool,可选) - 是否广播 ``index`` 矩阵,默认为 ``True``。 返回 ::::::::: diff --git a/docs/api/paddle/rad2deg_cn.rst b/docs/api/paddle/rad2deg_cn.rst index 824ab3a2190..4474fbcf874 100644 --- a/docs/api/paddle/rad2deg_cn.rst +++ b/docs/api/paddle/rad2deg_cn.rst @@ -14,8 +14,8 @@ rad2deg 参数 ::::::::: -- **x** (Tensor) - 输入的 Tensor,数据类型为:int32、int64、float32、float64。 -- **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 + - **x** (Tensor) - 输入的 Tensor,数据类型为:int32、int64、float32、float64。 + - **name** (str,可选) - 操作的名称(可选,默认值为 None)。更多信息请参见 :ref:`api_guide_Name`。 返回 ::::::::: diff --git a/docs/api/paddle/reduce_as_cn.rst b/docs/api/paddle/reduce_as_cn.rst index 8041530e1fa..9b140a00136 100644 --- a/docs/api/paddle/reduce_as_cn.rst +++ b/docs/api/paddle/reduce_as_cn.rst @@ -3,7 +3,7 @@ reduce_as ------------------------------- -.. py:function:: paddle.reduce_as(x, target, name=None): +.. py:function:: paddle.reduce_as(x, target, name=None) 对 x 在某些维度上求和,使其结果与 target 的 shape 一致。 diff --git a/docs/api/paddle/renorm_cn.rst b/docs/api/paddle/renorm_cn.rst index a9eb180a885..6edceeabead 100644 --- a/docs/api/paddle/renorm_cn.rst +++ b/docs/api/paddle/renorm_cn.rst @@ -10,10 +10,10 @@ renorm 参数 :::::::::::: -- **x** (Tensor) - 输入张量 -- **p** (float) - 范数运算的幂。 -- **axis** (int) - 对张量进行切片的维度。 -- **max-norm** (float) - 最大范数限制。 + - **x** (Tensor) - 输入张量 + - **p** (float) - 范数运算的幂。 + - **axis** (int) - 对张量进行切片的维度。 + - **max_norm** (float) - 最大范数限制。 返回 ::::::::: diff --git a/docs/api/paddle/rot90_cn.rst b/docs/api/paddle/rot90_cn.rst index 3190a191d24..98687a511a2 100644 --- a/docs/api/paddle/rot90_cn.rst +++ b/docs/api/paddle/rot90_cn.rst @@ -3,7 +3,7 @@ rot90 ------------------------------- -.. py:function:: paddle.rot90(x, k=1, axes=[0, 1], name=None): +.. py:function:: paddle.rot90(x, k=1, axes=[0, 1], name=None) diff --git a/docs/api/paddle/save_cn.rst b/docs/api/paddle/save_cn.rst index eaba6a79fa4..78e91871254 100644 --- a/docs/api/paddle/save_cn.rst +++ b/docs/api/paddle/save_cn.rst @@ -3,7 +3,7 @@ save ----- -.. py:function:: paddle.save(obj, path, protocol=4) +.. py:function:: paddle.save(obj, path, protocol=4, **configs) 将对象实例 obj 保存到指定的路径中。 @@ -26,10 +26,10 @@ save 参数 ::::::::: - - **obj** (Object) – 要保存的对象实例。 - - **path** (str|BytesIO) – 保存对象实例的路径/内存对象。如果存储到当前路径,输入的 path 字符串将会作为保存的文件名。 - - **protocol** (int,可选) – pickle 模块的协议版本,默认值为 4,取值范围是[2,4]。 - - **configs** (dict,可选) – 其他配置选项,目前支持以下选项:(1)use_binary_format(bool)- 如果被保存的对象是静态图的 Tensor,你可以指定这个参数。如果被指定为 ``True``,这个 Tensor 会被保存为由 paddle 定义的二进制格式的文件;否则这个 Tensor 被保存为 pickle 格式。默认为 ``False`` 。 + - **obj** (Object) – 要保存的对象实例。 + - **path** (str|BytesIO) – 保存对象实例的路径/内存对象。如果存储到当前路径,输入的 path 字符串将会作为保存的文件名。 + - **protocol** (int,可选) – pickle 模块的协议版本,默认值为 4,取值范围是[2,4]。 + - **configs** (dict,可选) – 其他配置选项,目前支持以下选项:(1)use_binary_format(bool)- 如果被保存的对象是静态图的 Tensor,你可以指定这个参数。如果被指定为 ``True``,这个 Tensor 会被保存为由 paddle 定义的二进制格式的文件;否则这个 Tensor 被保存为 pickle 格式。默认为 ``False`` 。 返回 ::::::::: diff --git a/docs/api/paddle/select_scatter_cn.rst b/docs/api/paddle/select_scatter_cn.rst index 83f298aa713..e7ebd798340 100644 --- a/docs/api/paddle/select_scatter_cn.rst +++ b/docs/api/paddle/select_scatter_cn.rst @@ -8,11 +8,11 @@ select_scatter 参数 ::::::::: -- **x** (Tensor) - 输入的 Tensor 作为目标矩阵,数据类型为: `bool`、 `float16`、 `float32`、 `float64`、 `uint8`、 `int8`、 `int16`、 `int32`、 `int64`、 `bfloat16`、 `complex64`、 `complex128`。 -- **values** (Tensor) - 需要插入的值,形状需要与 ``x`` 矩阵除去第 ``axis`` 维后的形状一致,数据类型为: `bool`、 `float16`、 `float32`、 `float64`、 `uint8`、 `int8`、 `int16`、 `int32`、 `int64`、 `bfloat16`、 `complex64`、 `complex128`。 -- **axis** (int) - 指定沿着哪个维度嵌入对应的值,数据类型为:int。 -- **index** (int) - 指定沿着 ``axis`` 维的哪一列嵌入对应的值,数据类型为:int。 -- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **x** (Tensor) - 输入的 Tensor 作为目标矩阵,数据类型为: `bool`、 `float16`、 `float32`、 `float64`、 `uint8`、 `int8`、 `int16`、 `int32`、 `int64`、 `bfloat16`、 `complex64`、 `complex128`。 + - **values** (Tensor) - 需要插入的值,形状需要与 ``x`` 矩阵除去第 ``axis`` 维后的形状一致,数据类型为: `bool`、 `float16`、 `float32`、 `float64`、 `uint8`、 `int8`、 `int16`、 `int32`、 `int64`、 `bfloat16`、 `complex64`、 `complex128`。 + - **axis** (int) - 指定沿着哪个维度嵌入对应的值,数据类型为:int。 + - **index** (int) - 指定沿着 ``axis`` 维的哪一列嵌入对应的值,数据类型为:int。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 ::::::::: diff --git a/docs/api/paddle/take_along_axis_cn.rst b/docs/api/paddle/take_along_axis_cn.rst index fd5b5ce8f49..acfb3aaebe5 100644 --- a/docs/api/paddle/take_along_axis_cn.rst +++ b/docs/api/paddle/take_along_axis_cn.rst @@ -9,10 +9,10 @@ take_along_axis 参数 ::::::::: -- **arr** (Tensor) - 输入的 Tensor 作为源矩阵,数据类型为:float32、float64。 -- **indices** (Tensor) - 索引矩阵,包含沿轴提取 1d 切片的下标,必须和 arr 矩阵有相同的维度,需要能够 broadcast 与 arr 矩阵对齐,数据类型为:int、int64。 -- **axis** (int) - 指定沿着哪个维度获取对应的值,数据类型为:int。 -- **broadcast** (bool,可选) - 是否广播 ``index`` 矩阵,默认为 ``True``。 + - **arr** (Tensor) - 输入的 Tensor 作为源矩阵,数据类型为:float32、float64。 + - **indices** (Tensor) - 索引矩阵,包含沿轴提取 1d 切片的下标,必须和 arr 矩阵有相同的维度,需要能够 broadcast 与 arr 矩阵对齐,数据类型为:int、int64。 + - **axis** (int) - 指定沿着哪个维度获取对应的值,数据类型为:int。 + - **broadcast** (bool,可选) - 是否广播 ``index`` 矩阵,默认为 ``True``。 返回 ::::::::: diff --git a/docs/api/paddle/take_cn.rst b/docs/api/paddle/take_cn.rst index 7c15fa7e83a..02c3739960c 100644 --- a/docs/api/paddle/take_cn.rst +++ b/docs/api/paddle/take_cn.rst @@ -11,15 +11,15 @@ take 参数 ::::::::: -- **x** (Tensor) - 输入的 Tensor,支持 int32、int64、float32、float64 数据类型。 -- **index** (Tensor) - 索引矩阵,支持 int32、int64 数据类型。 -- **mode** (str,可选) - 索引越界处理,可选 ``'raise'``,``'wrap'``,``'clip'``,默认为 ``'raise'``。 + - **x** (Tensor) - 输入的 Tensor,支持 int32、int64、float32、float64 数据类型。 + - **index** (Tensor) - 索引矩阵,支持 int32、int64 数据类型。 + - **mode** (str,可选) - 索引越界处理,可选 ``'raise'``,``'wrap'``,``'clip'``,默认为 ``'raise'``。 - - ``raise``:直接抛出错误; - - ``wrap``:通过取余数来约束超出范围的索引; - - ``clip``:将超出范围的索引剪裁到允许的最小(大)范围。此模式意味着所有超出范围的索引都将被最后一个元素的索引替换,而且将禁用负值索引。 + - ``raise``:直接抛出错误; + - ``wrap``:通过取余数来约束超出范围的索引; + - ``clip``:将超出范围的索引剪裁到允许的最小(大)范围。此模式意味着所有超出范围的索引都将被最后一个元素的索引替换,而且将禁用负值索引。 -- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 ::::::::: diff --git a/docs/api/paddle/unstack_cn.rst b/docs/api/paddle/unstack_cn.rst index ccc0f5de341..87553cd16fd 100644 --- a/docs/api/paddle/unstack_cn.rst +++ b/docs/api/paddle/unstack_cn.rst @@ -13,11 +13,9 @@ unstack 参数 :::::::::::: - - **x** (Tensor) – 输入 x 为 ``dim > 0`` 的 Tensor, - 支持的数据类型:float32,float64,int32,int64, complex64,complex128。 + - **x** (Tensor) – 输入 x 为 ``dim > 0`` 的 Tensor,支持的数据类型:float32,float64,int32,int64, complex64,complex128。 - - **axis** (int | 可选) – 输入 Tensor 进行 unpack 运算所在的轴,axis 的范围为:``[-D, D)`` , - 如果 ``axis < 0``,则 :math:`axis = axis + dim(x)`,axis 的默认值为 0。 + - **axis** (int | 可选) – 输入 Tensor 进行 unpack 运算所在的轴,axis 的范围为:``[-D, D)`` ,如果 ``axis < 0``,则 :math:`axis = axis + dim(x)`,axis 的默认值为 0。 - **num** (int | 可选) - axis 轴的长度,一般无需设置,默认值为 ``None`` 。 From bd447733f2f50fe29bc5dcedfc1122861fea1aa2 Mon Sep 17 00:00:00 2001 From: fufu <2871640030@qq.com> Date: Fri, 13 Sep 2024 14:44:02 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E7=94=A8Inplace=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E9=93=BE=E6=8E=A5Outplace=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api/paddle/index_fill__cn.rst | 17 +---------------- docs/api/paddle/index_fill_cn.rst | 16 +++++++++++++++- docs/api/paddle/index_put__cn.rst | 19 +------------------ docs/api/paddle/index_put_cn.rst | 16 +++++++++++++++- 4 files changed, 32 insertions(+), 36 deletions(-) diff --git a/docs/api/paddle/index_fill__cn.rst b/docs/api/paddle/index_fill__cn.rst index 64003f22c7f..4188a89f793 100644 --- a/docs/api/paddle/index_fill__cn.rst +++ b/docs/api/paddle/index_fill__cn.rst @@ -5,22 +5,7 @@ index_fill\_ .. py:function:: paddle.index_fill_(x, index, axis, value, name=None) -依据指定的轴 ``axis`` 和索引 ``indices`` 将指定位置的 ``x`` 填充为 ``value`` 。 - -参数 -::::::::: - - - **x** (Tensor)– 输入 Tensor。 ``x`` 的数据类型可以是 float16, float32,float64,int32,int64。 - - **index** (Tensor)– 包含索引下标的 1-D Tensor。数据类型可以是 int32,int64。 - - **axis** (int) – 索引轴。数据类型为 int。 - - **value** (float)– 用于填充目标张量的值。 - - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 - -返回 -::::::::: - -Tensor,返回一个数据类型同输入的 Tensor。 - +Inplace 版本的 :ref:`cn_api_paddle_index_fill` API 代码示例 :::::::::::: diff --git a/docs/api/paddle/index_fill_cn.rst b/docs/api/paddle/index_fill_cn.rst index f6a1dcceb8e..50ef341bf32 100644 --- a/docs/api/paddle/index_fill_cn.rst +++ b/docs/api/paddle/index_fill_cn.rst @@ -5,7 +5,21 @@ index_fill .. py:function:: paddle.index_fill(x, index, axis, value, name=None) -Outplace 版本的 :ref:`cn_api_paddle_index_fill_` API +依据指定的轴 ``axis`` 和索引 ``indices`` 将指定位置的 ``x`` 填充为 ``value`` 。 + +参数 +::::::::: + + - **x** (Tensor)– 输入 Tensor。 ``x`` 的数据类型可以是 float16, float32,float64,int32,int64。 + - **index** (Tensor)– 包含索引下标的 1-D Tensor。数据类型可以是 int32,int64。 + - **axis** (int) – 索引轴。数据类型为 int。 + - **value** (float)– 用于填充目标张量的值。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + +返回 +::::::::: + +Tensor,返回一个数据类型同输入的 Tensor。 代码示例 :::::::::::: diff --git a/docs/api/paddle/index_put__cn.rst b/docs/api/paddle/index_put__cn.rst index 734724552b1..7b20c843a09 100644 --- a/docs/api/paddle/index_put__cn.rst +++ b/docs/api/paddle/index_put__cn.rst @@ -5,24 +5,7 @@ index_put\_ .. py:function:: paddle.index_put_(x, indices, value, accumulate=False, name=None) - - -依据索引 ``indices`` ,将指定位置的 ``x`` 重新赋值为 ``value`` 。这里 ``indices`` 是一个 ``tuple of tensor`` 。 - -参数 -::::::::: - - - **x** (Tensor)– 输入 Tensor。 ``x`` 的数据类型可以是 float16, float32,float64,int32,int64,bool。 - - **indices** (Tuple of Tensor)– 包含用来索引的 tensors 的元组。数据类型为 int32,int64,bool。 - - **value** (Tensor) – 用来给 ``x`` 赋值的 Tensor。 - - **accumulate** (Tensor,可选)– 指定是否将 ``value`` 加到 ``x`` 的参数。 默认值为 False。 - - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 - -返回 -::::::::: - -Tensor,返回一个数据类型同输入的 Tensor。 - +Inplace 版本的 :ref:`cn_api_paddle_index_put` API 代码示例 :::::::::::: diff --git a/docs/api/paddle/index_put_cn.rst b/docs/api/paddle/index_put_cn.rst index daf37f8790b..01c6541827d 100644 --- a/docs/api/paddle/index_put_cn.rst +++ b/docs/api/paddle/index_put_cn.rst @@ -5,7 +5,21 @@ index_put .. py:function:: paddle.index_put(x, indices, value, accumulate=False, name=None) -Outplace 版本的 :ref:`cn_api_paddle_index_put_` API +依据索引 ``indices`` ,将指定位置的 ``x`` 重新赋值为 ``value`` 。这里 ``indices`` 是一个 ``tuple of tensor`` 。 + +参数 +::::::::: + + - **x** (Tensor)– 输入 Tensor。 ``x`` 的数据类型可以是 float16, float32,float64,int32,int64,bool。 + - **indices** (Tuple of Tensor)– 包含用来索引的 tensors 的元组。数据类型为 int32,int64,bool。 + - **value** (Tensor) – 用来给 ``x`` 赋值的 Tensor。 + - **accumulate** (Tensor,可选)– 指定是否将 ``value`` 加到 ``x`` 的参数。 默认值为 False。 + - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 + +返回 +::::::::: + +Tensor,返回一个数据类型同输入的 Tensor。 代码示例 :::::::::::: From eecd6605b7dc16a8e69490d56d6bf579d3a9dce8 Mon Sep 17 00:00:00 2001 From: fufu <2871640030@qq.com> Date: Fri, 13 Sep 2024 15:04:44 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=80=BB=E8=A7=88=E5=92=8CInplace=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E8=B7=B3=E8=BF=87=E5=8F=82=E6=95=B0=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci_scripts/check_api_parameters.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci_scripts/check_api_parameters.sh b/ci_scripts/check_api_parameters.sh index 7aca0600a6d..8cb6c75d1bc 100644 --- a/ci_scripts/check_api_parameters.sh +++ b/ci_scripts/check_api_parameters.sh @@ -11,6 +11,9 @@ function filter_cn_api_files() { local __resultvar=$2 local need_check_files="" for file in `echo $git_files`;do + if [[ "$file" == *"Overview_cn.rst"* ]] || [[ "$file" == *__cn.rst ]]; then + continue + fi echo "$file" | grep '.*\.rst$' > /dev/null if [ $? -eq 0 ] ;then need_check_files="${need_check_files} $file" From 2362db14ca34543715bfa59f5c295436bb844c16 Mon Sep 17 00:00:00 2001 From: fufu <2871640030@qq.com> Date: Fri, 13 Sep 2024 15:47:42 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E5=BC=80=E5=90=AF=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci_scripts/ci_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci_scripts/ci_start.sh b/ci_scripts/ci_start.sh index fea1d1c5370..1dbb083b018 100644 --- a/ci_scripts/ci_start.sh +++ b/ci_scripts/ci_start.sh @@ -83,7 +83,7 @@ if [ "${BUILD_DOC}" = "true" ] && [ -x /usr/local/bin/sphinx-build ] ; then fi fi -check_parameters=OFF +check_parameters=ON if [ "${check_parameters}" = "OFF" ] ; then #echo "chinese api doc fileslist is empty, skip check." echo "check_api_parameters is not stable, close it temporarily." From d8703a29041a4a065dde6b04fa98a339efd08cbe Mon Sep 17 00:00:00 2001 From: fufu <2871640030@qq.com> Date: Sat, 14 Sep 2024 13:59:52 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E9=83=A8=E5=88=86=E5=8B=98=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci_scripts/check_api_parameters.py | 58 +++++++++++++++--------------- docs/api/paddle/einsum_cn.rst | 3 -- docs/api/paddle/unstack_cn.rst | 6 +--- 3 files changed, 29 insertions(+), 38 deletions(-) diff --git a/ci_scripts/check_api_parameters.py b/ci_scripts/check_api_parameters.py index 5255abc5cf8..28e13b46ede 100644 --- a/ci_scripts/check_api_parameters.py +++ b/ci_scripts/check_api_parameters.py @@ -57,42 +57,40 @@ def parse_args(): def _check_params_in_description(rstfilename, paramstr): flag = True info = "" - params_intitle = [] + params_in_title = [] if paramstr: fake_func = ast.parse(f"def fake_func({paramstr}): pass") - # Iterate over all intitle parameters + # Iterate over all in_title parameters num_defaults = len(fake_func.body[0].args.defaults) num_args = len(fake_func.body[0].args.args) # args & defaults for i, arg in enumerate(fake_func.body[0].args.args): if i >= num_args - num_defaults: - default_value = ast.dump( - fake_func.body[0].args.defaults[ - i - (num_args - num_defaults) - ] - ) - params_intitle.append(f"{arg.arg}={default_value}") + default_value = fake_func.body[0].args.defaults[ + i - (num_args - num_defaults) + ] + params_in_title.append(f"{arg.arg}={default_value}") else: - params_intitle.append(arg.arg) + params_in_title.append(arg.arg) # posonlyargs for arg in fake_func.body[0].args.posonlyargs: - params_intitle.append(arg.arg) - # vararh(*args) + params_in_title.append(arg.arg) + # vararg(*args) if fake_func.body[0].args.vararg: - params_intitle.append(fake_func.body[0].args.vararg.arg) + params_in_title.append(fake_func.body[0].args.vararg.arg) # kwonlyargs & kw_defaults for i, arg in enumerate(fake_func.body[0].args.kwonlyargs): if ( i < len(fake_func.body[0].args.kw_defaults) and fake_func.body[0].args.kw_defaults[i] is not None ): - default_value = ast.dump(fake_func.body[0].args.kw_defaults[i]) - params_intitle.append(f"{arg.arg}={default_value}") + default_value = fake_func.body[0].args.kw_defaults[i] + params_in_title.append(f"{arg.arg}={default_value}") else: - params_intitle.append(arg.arg) + params_in_title.append(arg.arg) # **kwargs if fake_func.body[0].args.kwarg: - params_intitle.append(fake_func.body[0].args.kwarg.arg) + params_in_title.append(fake_func.body[0].args.kwarg.arg) funcdescnode = extract_params_desc_from_rst_file(rstfilename) if funcdescnode: @@ -101,40 +99,40 @@ def _check_params_in_description(rstfilename, paramstr): if not re.match(list_pat, str(items[0])): flag = False info = "Something wrong with the format of params list in description, check it please." - elif len(items) != len(params_intitle): + elif len(items) != len(params_in_title): flag = False if not items: info = ( "Params section in description is empty, check it please." ) else: - info = f"The number of params in title does not match the params in description: {len(params_intitle)} != {len(items)}." + info = f"The number of params in title does not match the params in description: {len(params_in_title)} != {len(items)}." print(f"check failed (parammeters description): {rstfilename}") else: for i in range(len(items)): - pname_intitle = params_intitle[i].split("=")[0].strip() + pname_in_title = params_in_title[i].split("=")[0].strip() mo = re.match( r"\*{0,2}(\w+)\b.*", items[i].children[0].astext() ) if mo: pname_indesc = mo.group(1) - if pname_indesc != pname_intitle: + if pname_indesc != pname_in_title: flag = False - info = f"the following param in title does not match the param in description: {pname_intitle} != {pname_indesc}." + info = f"the following param in title does not match the param in description: {pname_in_title} != {pname_indesc}." print( - f"check failed (parammeters description): {rstfilename}, {pname_intitle} != {pname_indesc}" + f"check failed (parammeters description): {rstfilename}, {pname_in_title} != {pname_indesc}" ) else: flag = False - info = f"param name '{pname_intitle}' not matched in description line{i+1}, check it please." + info = f"param name '{pname_in_title}' not matched in description line{i+1}, check it please." print( f"check failed (parammeters description): {rstfilename}, param name not found in {i} paragraph." ) else: - if params_intitle: + if params_in_title: info = "params section not found in description, check it please." print( - f"check failed (parameters description not found): {rstfilename}, {params_intitle}." + f"check failed (parameters description not found): {rstfilename}, {params_in_title}." ) flag = False return flag, info @@ -154,21 +152,21 @@ def _check_params_in_description_with_fullargspec(rstfilename, funcname): print(f"check failed (parammeters description): {rstfilename}") else: for i in range(len(items)): - pname_intitle = params_inspec[i] + pname_in_title = params_inspec[i] mo = re.match( r"\*{0,2}(\w+)\b.*", items[i].children[0].astext() ) if mo: pname_indesc = mo.group(1) - if pname_indesc != pname_intitle: + if pname_indesc != pname_in_title: flag = False - info = f"the following param in title does not match the param in description: {pname_intitle} != {pname_indesc}." + info = f"the following param in title does not match the param in description: {pname_in_title} != {pname_indesc}." print( - f"check failed (parammeters description): {rstfilename}, {pname_intitle} != {pname_indesc}" + f"check failed (parammeters description): {rstfilename}, {pname_in_title} != {pname_indesc}" ) else: flag = False - info = f"param name '{pname_intitle}' not matched in description line{i+1}, check it please." + info = f"param name '{pname_in_title}' not matched in description line{i+1}, check it please." print( f"check failed (parammeters description): {rstfilename}, param name not found in {i} paragraph." ) diff --git a/docs/api/paddle/einsum_cn.rst b/docs/api/paddle/einsum_cn.rst index 52545775c28..a74a06ea1d9 100644 --- a/docs/api/paddle/einsum_cn.rst +++ b/docs/api/paddle/einsum_cn.rst @@ -67,15 +67,12 @@ Einsum 求和过程理论上等价于如下四步,但实现中实际执行的 参数 ::::: - - **equation** (str):求和标记 - - **operands** (Tensor, [Tensor, ...]):输入 Tensor 返回 ::::: - Tensor:输出 Tensor 代码示例 diff --git a/docs/api/paddle/unstack_cn.rst b/docs/api/paddle/unstack_cn.rst index 87553cd16fd..b3ce6a2ddb1 100644 --- a/docs/api/paddle/unstack_cn.rst +++ b/docs/api/paddle/unstack_cn.rst @@ -5,22 +5,18 @@ unstack .. py:function:: paddle.unstack(x, axis=0, num=None) - - - 将单个 dim 为 ``D`` 的 Tensor 沿 ``axis`` 轴 unpack 为 ``num`` 个 dim 为 ``(D-1)`` 的 Tensor。 参数 :::::::::::: - **x** (Tensor) – 输入 x 为 ``dim > 0`` 的 Tensor,支持的数据类型:float32,float64,int32,int64, complex64,complex128。 - - **axis** (int | 可选) – 输入 Tensor 进行 unpack 运算所在的轴,axis 的范围为:``[-D, D)`` ,如果 ``axis < 0``,则 :math:`axis = axis + dim(x)`,axis 的默认值为 0。 - - **num** (int | 可选) - axis 轴的长度,一般无需设置,默认值为 ``None`` 。 返回 :::::::::::: + 长度为 num 的 Tensor 列表,数据类型与输入 Tensor 相同,dim 为 ``(D-1)``。 也可以参考下方的图示来理解 ``unstack`` 是如何对张量进行变换的。图中分别展示了一个形状为 ``(3, 4)`` 的 Tensor 在 ``axis=1`` 和一个形状为 ``(2, 3, 3)`` 的 Tensor 在 ``axis=1`` 的 unstack 操作。