cos_sim_cn.rst 1.3 KB
Newer Older
H
Hao Wang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
.. _cn_api_fluid_layers_cos_sim:

cos_sim
-------------------------------

.. py:function:: paddle.fluid.layers.cos_sim(X, Y)

余弦相似度算子(Cosine Similarity Operator)

.. math::

        Out = \frac{X^{T}*Y}{\sqrt{X^{T}*X}*\sqrt{Y^{T}*Y}}

L
lvmengsi 已提交
14
输入X和Y必须具有相同的shape。但是有一个例外:如果输入Y的第一维为1(不同于输入X的第一维度),在计算它们的余弦相似度之前,Y的第一维度会自动进行广播(broadcast),以便于匹配输入X的shape。
H
Hao Wang 已提交
15

L
lvmengsi 已提交
16
输入X和Y可以都携带或者都不携带LoD(Level of Detail)信息。但输出和输入X的LoD信息保持一致。
H
Hao Wang 已提交
17 18

参数:
L
lvmengsi 已提交
19
    - **X** (Variable) - cos_sim操作函数的第一个输入,维度为 ``[N_1, N_2, ..., N_k]`` 的多维LoDTensor, 维度不能小于2。数据类型:float32。
L
lvmengsi 已提交
20
    - **Y** (Variable) - cos_sim操作函数的第二个输入,维度为 ``[N_1 或者 1, N_2, ..., N_k]`` 的多维Tensor。数据类型:float32。
H
Hao Wang 已提交
21

L
lvmengsi 已提交
22
返回:LoDTensor。输出两个输入的余弦相似度。
H
Hao Wang 已提交
23

L
lvmengsi 已提交
24
返回类型:Variable
H
Hao Wang 已提交
25

L
lvmengsi 已提交
26
**代码示例**:
H
Hao Wang 已提交
27 28 29

..  code-block:: python

L
lvmengsi 已提交
30
    import paddle.fluid as fluid
C
ceci3 已提交
31 32
    x = fluid.data(name='x', shape=[3, 7], dtype='float32')
    y = fluid.data(name='y', shape=[1, 7], dtype='float32')
L
lvmengsi 已提交
33
    out = fluid.layers.cos_sim(x, y)
H
Hao Wang 已提交
34 35 36