oneflow.nn.CosineSimilarity¶
-
class
oneflow.nn.
CosineSimilarity
(dim: Optional[int] = 1, eps: Optional[float] = 1e-08)¶ Returns cosine similarity between \(x_1\) and \(x_2\), computed along dim.
\[\text{similarity} = \dfrac{x_1 \cdot x_2}{\max(\Vert x_1 \Vert _2 \cdot \Vert x_2 \Vert _2, \epsilon)}.\]The interface is consistent with PyTorch. The documentation is referenced from: https://pytorch.org/docs/1.10/generated/torch.nn.CosineSimilarity.html#torch.nn.CosineSimilarity
- Parameters
dim (int, optional) – Dimension where cosine similarity is computed. Default: 1
eps (float, optional) – Small value to avoid division by zero. Default: 1e-8
- Shape:
Input1: \((\ast_1, D, \ast_2)\) where D is at position dim.
- Input2: \((\ast_1, D, \ast_2)\), same number of dimensions as x1, matching x1 size at dimension dim,
and broadcastable with x1 at other dimensions.
Output: \((\ast_1, \ast_2)\)
For example:
>>> import oneflow as flow >>> from oneflow import nn >>> input1 = flow.randn(100, 128) >>> input2 = flow.randn(100, 128) >>> cos = nn.CosineSimilarity(dim=1, eps=1e-6) >>> output = cos(input1, input2)