diff --git a/doc/fluid/api/nn.rst b/doc/fluid/api/nn.rst index 246a466029ba84bc31d7ab79ab23bc6317ffdb6b..d9ad7ad2945b31588711f5eff269aa090a685e6c 100644 --- a/doc/fluid/api/nn.rst +++ b/doc/fluid/api/nn.rst @@ -172,3 +172,4 @@ paddle.nn nn/AdaptiveAvgPool2d.rst nn/AdaptiveAvgPool3d.rst nn/layer/activation/Sigmoid.rst + nn/Bilinear.rst \ No newline at end of file diff --git a/doc/fluid/api/nn/Bilinear.rst b/doc/fluid/api/nn/Bilinear.rst new file mode 100644 index 0000000000000000000000000000000000000000..cbd2847b06f01a779e930c042b614219714b89a7 --- /dev/null +++ b/doc/fluid/api/nn/Bilinear.rst @@ -0,0 +1,8 @@ +.. _api_nn_Bilinear: + +Bilinear +------------------------------- + +.. autofunction:: paddle.nn.Bilinear + :noindex: + diff --git a/doc/fluid/api/nn/functional.rst b/doc/fluid/api/nn/functional.rst index d28cbfd07878f39a9e1d90a9a16b1615d9346e9e..b18ea5956981d55d74b67d25d0b0441991b5fbdd 100644 --- a/doc/fluid/api/nn/functional.rst +++ b/doc/fluid/api/nn/functional.rst @@ -11,3 +11,4 @@ functional functional/ctc_loss.rst functional/adaptive_avg_pool2d.rst functional/adaptive_avg_pool3d.rst + functional/bilinear.rst diff --git a/doc/fluid/api/nn/functional/bilinear.rst b/doc/fluid/api/nn/functional/bilinear.rst new file mode 100644 index 0000000000000000000000000000000000000000..0b15e7c385a851236db50ef84e62bec3bbb59312 --- /dev/null +++ b/doc/fluid/api/nn/functional/bilinear.rst @@ -0,0 +1,8 @@ +.. _api_nn_functional_bilinear: + +bilinear +-------------------- + +.. autofunction:: paddle.nn.functional.bilinear + :noindex: + diff --git a/doc/fluid/api_cn/nn_cn.rst b/doc/fluid/api_cn/nn_cn.rst index e9091a93b55fd1be56fb93258ab2915eb24ae3ac..690d78e5fea7b7ad7bc2c4013991d1ca2e51ca7c 100644 --- a/doc/fluid/api_cn/nn_cn.rst +++ b/doc/fluid/api_cn/nn_cn.rst @@ -189,3 +189,4 @@ paddle.nn nn_cn/ZeroPad2d_cn.rst nn_cn/AdaptiveAvgPool2d_cn.rst nn_cn/AdaptiveAvgPool3d_cn.rst + nn_cn/Bilinear_cn.rst diff --git a/doc/fluid/api_cn/nn_cn/Bilinear_cn.rst b/doc/fluid/api_cn/nn_cn/Bilinear_cn.rst new file mode 100644 index 0000000000000000000000000000000000000000..55ccb27c78fdfea567ed8195aa6fd0828ee64cc6 --- /dev/null +++ b/doc/fluid/api_cn/nn_cn/Bilinear_cn.rst @@ -0,0 +1,59 @@ +.. _cn_api_nn_Bilinear: + +Bilinear +------------------------------- + +.. py:function:: paddle.nn.Bilinear(in1_features, in2_features, out_features, weight_attr=None, bias_attr=None, name=None) + +该层对两个输入执行双线性张量积。 + +例如: + +.. math:: + + out_{i} = x1 * W_{i} * {x2^\mathrm{T}}, i=0,1,...,size-1 + + out = out + b + +在这个公式中: + - :math:`x1`: 第一个输入,包含 :in1_features个元素,形状为 [batch_size, in1_features]。 + - :math:`x2`: 第二个输入,包含 :in2_features个元素,形状为 [batch_size, in2_features]。 + - :math:`W_{i}`: 第 :i个被学习的权重,形状是 [in1_features, in2_features]。 + - :math:`out_{i}`: 输出的第 :i个元素,形状是 [batch_size, out_features]。 + - :math:`b`: 被学习的偏置参数,形状是 [1, out_features]。 + - :math:`x2^\mathrm{T}`: :math:`x2` 的转置。 + +参数 +::::::::: + - **in1_features** (int): 每个 **x1** 元素的维度。 + - **in2_features** (int): 每个 **x2** 元素的维度。 + - **out_features** (int): 输出张量的维度。 + - **weight_attr** (ParamAttr,可选) :指定权重参数属性的对象。默认值为 None,表示使用默认的权重参数属性。 + - **bias_attr** (ParamAttr,可选) : 指定偏置参数属性的对象。默认值为 None,表示使用默认的偏置参数属性,此时bias的元素会被初始化成0。如果设置成False,则不会有bias加到output结果上。 + - **name** (str,可选) – 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为 None。 + +属性 +::::::::: + - **weight** 本层的可学习参数,类型为 Parameter + - **bias** 本层的可学习偏置,类型为 Parameter + +返回 +::::::::: +``Tensor``,一个形为 [batch_size, out_features] 的 2-D 张量。 + +代码示例 +::::::::: + +.. code-block:: python + + import paddle + import numpy + + paddle.disable_static() + layer1 = numpy.random.random((5, 5)).astype('float32') + layer2 = numpy.random.random((5, 4)).astype('float32') + bilinear = paddle.nn.Bilinear( + in1_features=5, in2_features=4, out_features=1000) + result = bilinear(paddle.to_tensor(layer1), + paddle.to_tensor(layer2)) # result shape [5, 1000] + diff --git a/doc/fluid/api_cn/nn_cn/functional_cn.rst b/doc/fluid/api_cn/nn_cn/functional_cn.rst index 87ba6ddb7e92e7fbb1f27b2311a6013953449ab1..16c0fb1b4d076f698e293f2f85391cc8e375710d 100644 --- a/doc/fluid/api_cn/nn_cn/functional_cn.rst +++ b/doc/fluid/api_cn/nn_cn/functional_cn.rst @@ -25,3 +25,4 @@ functional functional_cn/adaptive_avg_pool3d_cn.rst functional_cn/sigmoid_cn.rst functional_cn/cross_entropy_loss_cn.rst + functional_cn/bilinear_cn.rst diff --git a/doc/fluid/api_cn/nn_cn/functional_cn/bilinear_cn.rst b/doc/fluid/api_cn/nn_cn/functional_cn/bilinear_cn.rst new file mode 100644 index 0000000000000000000000000000000000000000..6872bd957cd65779d834d2bda44774f9a04e2c36 --- /dev/null +++ b/doc/fluid/api_cn/nn_cn/functional_cn/bilinear_cn.rst @@ -0,0 +1,41 @@ +.. _cn_api_nn_functional_bilinear: + +bilinear +------------------------------- + + +.. py:function:: paddle.nn.functional.bilinear(x1, x2, weight, bias=None, name=None) + +该层对两个输入执行双线性张量积。 +详细的计算和返回值维度请参见 :ref:`cn_api_nn_Bilinear` + +参数 +::::::::: + - **x1** (int): 第一个输入的 `Tensor` ,数据类型为:float32、float64。 + - **x2** (int): 第二个输入的 `Tensor` ,数据类型为:float32、float64。 + - **weight** (Parameter) :本层的可学习参数。形状是 [out_features, in1_features, in2_features]。 + - **bias** (Parameter, 可选) : 本层的可学习偏置。形状是 [1, out_features]。默认值为None,如果被设置成None,则不会有bias加到output结果上。 + - **name** (str,可选) – 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为 None。 + +返回 +::::::::: +``Tensor``,一个形为 [batch_size, out_features] 的 2-D 张量。 + +代码示例 +::::::::: + +.. code-block:: python + + import paddle + import numpy + import paddle.nn.functional as F + + paddle.disable_static() + x1 = numpy.random.random((5, 5)).astype('float32') + x2 = numpy.random.random((5, 4)).astype('float32') + w = numpy.random.random((1000, 5, 4)).astype('float32') + b = numpy.random.random((1, 1000)).astype('float32') + + result = F.bilinear(paddle.to_tensor(x1), paddle.to_tensor(x2), paddle.to_tensor(w), paddle.to_tensor(b)) # result shape [5, 1000] + +