mindspore.nn.CosineSimilarity

class mindspore.nn.CosineSimilarity(similarity='cosine', reduction='none', zero_diagonal=True)[source]

Computes representation similarity.

Parameters
  • similarity (str) – ‘dot’ or ‘cosine’. Default: ‘cosine’.

  • reduction (str) – ‘none’, ‘sum’, ‘mean’ (all along dim -1). Default: ‘none’.

  • zero_diagonal (bool) – If True, diagonals of results will be set to zero. Default: True.

Returns

numpy.ndarray. A square matrix with element-wise similarity scores. If reduction is set to “sum” or “mean”, values of the matrix will be reduced by row.

Supported Platforms:

Ascend GPU CPU

Example

>>> import numpy as np
>>> from mindspore import nn
>>>
>>> test_data = np.array([[1, 3, 4, 7], [2, 4, 2, 5], [3, 1, 5, 8]])
>>> metric = nn.CosineSimilarity()
>>> metric.clear()
>>> metric.update(test_data)
>>> square_matrix = metric.eval()
>>> print(square_matrix)
[[0.  0.94025615  0.95162452]
 [0.94025615  0.  0.86146098]
 [0.95162452  0.86146098  0.]]
clear()[source]

Clears the internal evaluation result.

eval()[source]

Computes the similarity matrix.

Returns

numpy.ndarray. The similarity matrix.

Raises

RuntimeError – If the update method is not called first, an error will be reported.

update(inputs)[source]

Updates the internal evaluation result with ‘inputs’.

Parameters

inputs (Union[Tensor, list, numpy.ndarray]) – The input matrix.