From 0d72575c39d21a11b6d939f96b93793d24da3265 Mon Sep 17 00:00:00 2001 From: cangtianhuang Date: Sat, 12 Apr 2025 08:45:38 +0000 Subject: [PATCH 1/4] fix embedding --- .../api/paddle/nn/functional/embedding_cn.rst | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/api/paddle/nn/functional/embedding_cn.rst b/docs/api/paddle/nn/functional/embedding_cn.rst index bf49ac9befe..083585608d4 100644 --- a/docs/api/paddle/nn/functional/embedding_cn.rst +++ b/docs/api/paddle/nn/functional/embedding_cn.rst @@ -7,13 +7,13 @@ embedding -嵌入层(Embedding Layer),根据 input 中的 id 信息从 embedding 矩阵中查询对应 embedding 信息,并会根据输入的 size (vocab_size, emb_size)和 dtype 自动构造一个二维 embedding 矩阵。 +嵌入层(Embedding Layer),根据输入 x 中的 id 信息从 embedding 矩阵中查询对应 embedding 信息,并会根据输入的 weight (num_embeddings, embedding_dim) 和 dtype 自动构造一个二维 embedding 矩阵。 -输出的 Tensor 的 shape 是将输入 Tensor shape 后追加一维 emb_size。 +输出的 Tensor 的 shape 是将输入 Tensor shape 后追加一维 embedding_dim。 .. note:: - input 中的 id 必须满足 ``0 =< id < size[0]``,否则程序会抛异常退出。 + x 中的 id 必须满足 ``0 =< id < weight.shape[0]``,否则程序会抛出异常并退出。 .. code-block:: text @@ -39,19 +39,19 @@ embedding :::::::::::: - - **input** (Tensor) - 存储 id 信息的 Tensor,数据类型必须为:int32/int64。input 中的 id 必须满足 ``0 =< id < size[0]`` 。 - - **weight** (Tensor) - 存储词嵌入权重参数的 Tensor,形状为(num_embeddings, embedding_dim)。 - - **padding_idx** (int|long|None,可选) - padding_idx 的配置区间为 ``[-weight.shape[0], weight.shape[0]``,如果配置了 padding_idx,那么在训练过程中遇到此 id 时,其参数及对应的梯度将会以 0 进行填充。如果 padding_idx < 0 ,则 padding_idx 将自动转换到 ``weight.shape[0] + padding_idx`` 。如果设置为 "None",则不会对输出产生影响。默认值:None。 - - **max_norm** (float,可选) - 若声明,会将范数大于此值的词嵌入向量重新归一化,使其范数等于此值。在动态图模式下会对 ``weight`` 产生 inplace 修改。默认值为 None。 - - **norm_type** (float) - 应用 ``max_norm`` 时所计算的 p 阶范数的 p 值。默认值 2.0。 + - **x** (Tensor) - 存储 id 信息的 Tensor,数据类型必须为:int32/int64。输入中的 id 必须满足 ``0 =< id < weight.shape[0]`` 。 + - **weight** (Tensor) - 存储词嵌入权重参数的 Tensor,形状为 (num_embeddings, embedding_dim) 。 + - **padding_idx** (int|None,可选) - padding_idx 的配置区间为 ``[-weight.shape[0], weight.shape[0])``,如果配置了 padding_idx,那么在训练过程中遇到此 id 时,其参数及对应的梯度将会以 0 进行填充。如果 padding_idx < 0 ,则 padding_idx 将自动转换到 ``weight.shape[0] + padding_idx`` 。如果设置为 None,则不会对输出产生影响。默认值:None。 + - **max_norm** (float,可选) - 若声明,会将范数大于此值的词嵌入向量重新归一化,使其范数等于此值。在动态图模式下会对 ``weight`` 产生 inplace 修改。默认值:None。 + - **norm_type** (float) - 应用 ``max_norm`` 时所计算的 p 阶范数的 p 值。默认值:2.0。 - **sparse** (bool,可选) - 是否使用稀疏更新,在词嵌入权重较大的情况下,使用稀疏更新(即设置为 True)能够获得更快的训练速度及更小的内存/显存占用。但是一些优化器不支持稀疏更新,例如 :ref:`cn_api_paddle_optimizer_Adadelta` , :ref:`cn_api_paddle_optimizer_Adamax` , :ref:`cn_api_paddle_optimizer_Lamb` 。在这些情况下,稀疏必须为 False。默认值:False。 - - **scale_grad_by_freq** (bool,可选) - 是否根据单词在 mini-batch 中出现频率的倒数缩放梯度。默认值 False。 + - **scale_grad_by_freq** (bool,可选) - 是否根据单词在 mini-batch 中出现频率的倒数缩放梯度。默认值:False。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 :::::::::::: -Tensor, input 映射后得到的 Embedding Tensor,数据类型和权重定义的类型一致。 +Tensor, x 映射后得到的 Embedding Tensor,数据类型和权重定义的类型一致。 代码示例 From cf0bcdb861591528637edc1002aef1103cd8afa1 Mon Sep 17 00:00:00 2001 From: cangtianhuang Date: Sat, 12 Apr 2025 09:58:54 +0000 Subject: [PATCH 2/4] fix example in index_add_cn.rst --- docs/api/paddle/index_add_cn.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/api/paddle/index_add_cn.rst b/docs/api/paddle/index_add_cn.rst index 5f0d849345c..bed175484ed 100644 --- a/docs/api/paddle/index_add_cn.rst +++ b/docs/api/paddle/index_add_cn.rst @@ -13,7 +13,7 @@ index_add :: - - 示例 1 (输入为 2-D Tensor, axis=0 ): + - 示例 1 ( 输入为 2-D Tensor, axis=0 ): 输入: x.shape = [3, 3] x.data = [[1., 1., 1.], @@ -35,7 +35,7 @@ index_add [1., 1., 1.], [2., 2., 2.]] - - 示例 2 (输入为 2-D Tensor, axis=1 ): + - 示例 2 ( 输入为 2-D Tensor, axis=1 ): 输入: x.shape = [3, 3] x.data = [[1., 1., 1.], @@ -55,7 +55,7 @@ index_add 输出: out.shape = [3, 3] out.data = [[2., 1., 2.], - [1., 1., 1.], + [2., 1., 2.], [2., 1., 2.]] **示例 1 图解说明** @@ -79,16 +79,16 @@ index_add 参数 ::::::::: - - **x** (Tensor)– 输入 Tensor。 ``x`` 的数据类型可以是 float16, float32,float64,int32,int64。 - - **index** (Tensor)– 包含索引下标的 1-D Tensor。数据类型为 int32 或者 int64。 - - **axis** (int) – 索引轴。数据类型为 int。 - - **value** (Tensor)– 与 ``x`` 相加的 Tensor。 ``value`` 的数据类型同 ``x`` 。 + - **x** (Tensor) - 输入 Tensor。 ``x`` 的数据类型可以是 float16,float32,float64,int32,int64。 + - **index** (Tensor) - 包含索引下标的 1-D Tensor。数据类型为 int32 或者 int64。 + - **axis** (int) - 索引轴。数据类型为 int。 + - **value** (Tensor) - 与 ``x`` 相加的 Tensor。 ``value`` 的数据类型同 ``x`` 。 - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 返回 ::::::::: -Tensor,返回一个数据类型同输入的 Tensor。 +Tensor, 返回一个数据类型同输入的 Tensor。 代码示例 From 5b47ded96161a5774175bca133639cac17f7faa4 Mon Sep 17 00:00:00 2001 From: cangtianhuang Date: Mon, 14 Apr 2025 02:44:44 +0000 Subject: [PATCH 3/4] refine --- docs/api/paddle/index_add_cn.rst | 6 +++--- docs/api/paddle/nn/functional/embedding_cn.rst | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/api/paddle/index_add_cn.rst b/docs/api/paddle/index_add_cn.rst index bed175484ed..94bc17dfc2d 100644 --- a/docs/api/paddle/index_add_cn.rst +++ b/docs/api/paddle/index_add_cn.rst @@ -13,7 +13,7 @@ index_add :: - - 示例 1 ( 输入为 2-D Tensor, axis=0 ): + - 示例 1 (输入为 2-D Tensor, axis=0 ): 输入: x.shape = [3, 3] x.data = [[1., 1., 1.], @@ -35,7 +35,7 @@ index_add [1., 1., 1.], [2., 2., 2.]] - - 示例 2 ( 输入为 2-D Tensor, axis=1 ): + - 示例 2 (输入为 2-D Tensor, axis=1 ): 输入: x.shape = [3, 3] x.data = [[1., 1., 1.], @@ -88,7 +88,7 @@ index_add 返回 ::::::::: -Tensor, 返回一个数据类型同输入的 Tensor。 +Tensor,返回一个数据类型同输入的 Tensor。 代码示例 diff --git a/docs/api/paddle/nn/functional/embedding_cn.rst b/docs/api/paddle/nn/functional/embedding_cn.rst index 083585608d4..caef066e315 100644 --- a/docs/api/paddle/nn/functional/embedding_cn.rst +++ b/docs/api/paddle/nn/functional/embedding_cn.rst @@ -23,7 +23,7 @@ embedding x.data = [[1, 3], [2, 4], [4, 127]] x.shape = [3, 2] weight.shape = [128, 16] - 输出是 Tensor: + 输出是 Tensor: out.shape = [3, 2, 16] out.data = [[[0.129435295, 0.244512452, ..., 0.436322452], [0.345421456, 0.524563927, ..., 0.144534654]], @@ -51,7 +51,7 @@ embedding 返回 :::::::::::: -Tensor, x 映射后得到的 Embedding Tensor,数据类型和权重定义的类型一致。 +Tensor,x 映射后得到的 Embedding Tensor,数据类型和权重定义的类型一致。 代码示例 From 19442a7a1f2f5fadc7d599aaf218b0c4f0d09b3c Mon Sep 17 00:00:00 2001 From: cangtianhuang Date: Mon, 14 Apr 2025 04:26:14 +0000 Subject: [PATCH 4/4] refine --- docs/api/paddle/nn/Embedding_cn.rst | 14 +++++++------- docs/api/paddle/nn/functional/embedding_cn.rst | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/api/paddle/nn/Embedding_cn.rst b/docs/api/paddle/nn/Embedding_cn.rst index da265b89c84..82844dbb2e8 100644 --- a/docs/api/paddle/nn/Embedding_cn.rst +++ b/docs/api/paddle/nn/Embedding_cn.rst @@ -5,12 +5,12 @@ Embedding .. py:class:: paddle.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, sparse=False, weight_attr=None, scale_grad_by_freq=False, name=None) -嵌入层(Embedding Layer),用于构建 ``Embedding`` 的一个可调用对象,具体用法参照 ``代码示例``。其根据 ``x`` 中的 id 信息从 embedding 矩阵中查询对应 embedding 信息,并会根据输入的 size (num_embeddings, embedding_dim)和 weight_attr 自动构造一个二维 embedding 矩阵。 +嵌入层(Embedding Layer),用于构建 ``Embedding`` 的一个可调用对象,具体用法参照 ``代码示例``。它实现了嵌入层的功能,其根据 ``x`` 中的 id 信息从 embedding 矩阵中查询对应 embedding 信息,并会根据输入的 size (num_embeddings, embedding_dim) 和 weight_attr 自动构造一个二维 embedding 矩阵。 输出的 Tensor 的 shape 是在输入 Tensor shape 的最后一维后面添加了 embedding_dim 的维度。 .. note:: - input 中的 id 必须满足 ``0 <= id < size[0]``,否则程序会抛异常退出。 + input 中的 id 必须满足 ``0 <= id < num_embeddings``,否则程序会抛异常退出。 .. code-block:: text @@ -37,12 +37,12 @@ Embedding - **num_embeddings** (int) - 嵌入字典的大小,input 中的 id 必须满足 ``0 <= id < num_embeddings`` 。 - **embedding_dim** (int) - 每个嵌入向量的维度。 - - **padding_idx** (int|long|None,可选) - padding_idx 的配置区间为 ``[-weight.shape[0], weight.shape[0])``,如果配置了 padding_idx,那么在训练过程中遇到此 id 时,其参数及对应的梯度将会以 0 进行填充。 - - **max_norm** (float,可选) - 若声明,会将范数大于此值的词嵌入向量重新归一化,使其范数等于此值。在动态图模式下会对 ``weight`` 产生 inplace 修改。默认值为 None。 - - **norm_type** (float) - 应用 ``max_norm`` 时所计算的 p 阶范数的 p 值。默认值 2.0。 - - **sparse** (bool,可选) - 是否使用稀疏更新,在词嵌入权重较大的情况下,使用稀疏更新能够获得更快的训练速度及更小的内存/显存占用。 + - **padding_idx** (int|long|None,可选) - padding_idx 的配置区间为 ``[-num_embeddings, num_embeddings)``,如果配置了 padding_idx,那么在训练过程中遇到此 id 时,其参数及对应的梯度将会以 0 进行填充。默认值:None。 + - **max_norm** (float,可选) - 若声明,会将范数大于此值的词嵌入向量重新归一化,使其范数等于此值。在动态图模式下会对输入的词嵌入权重产生 inplace 修改。默认值:None。 + - **norm_type** (float) - 应用 ``max_norm`` 时所计算的 p 阶范数的 p 值。默认值:2.0。 + - **sparse** (bool,可选) - 是否使用稀疏更新,在词嵌入权重较大的情况下,使用稀疏更新能够获得更快的训练速度及更小的内存/显存占用。默认值:False。 - **weight_attr** (ParamAttr|None,可选) - 指定嵌入向量的配置,包括初始化方法,具体用法请参见 :ref:`api_guide_ParamAttr`,一般无需设置,默认值为 None。 - - **scale_grad_by_freq** (bool,可选) - 是否根据单词在 mini-batch 中出现频率的倒数缩放梯度。默认值 False。 + - **scale_grad_by_freq** (bool,可选) - 是否根据单词在 mini-batch 中出现频率的倒数缩放梯度。默认值:False。 - **name** (str|None,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。 diff --git a/docs/api/paddle/nn/functional/embedding_cn.rst b/docs/api/paddle/nn/functional/embedding_cn.rst index caef066e315..f3a49eadff1 100644 --- a/docs/api/paddle/nn/functional/embedding_cn.rst +++ b/docs/api/paddle/nn/functional/embedding_cn.rst @@ -7,9 +7,9 @@ embedding -嵌入层(Embedding Layer),根据输入 x 中的 id 信息从 embedding 矩阵中查询对应 embedding 信息,并会根据输入的 weight (num_embeddings, embedding_dim) 和 dtype 自动构造一个二维 embedding 矩阵。 +根据输入 ``x`` 中的 id 信息从 embedding 矩阵 ``weight`` 中查询对应的 embedding 信息。 -输出的 Tensor 的 shape 是将输入 Tensor shape 后追加一维 embedding_dim。 +输出的 Tensor 的 shape 是将输入 Tensor shape 后追加一维 embedding_dim(weight.shape[1])。 .. note::