---
title: Linear Similarity
description: Calculate pairwise linear similarity.
canonical: 'https://lightning.ai/docs/torchmetrics/stable/pairwise/linear_similarity'
---
# Linear Similarity {#linear-similarity}

## Functional Interface {#functional-interface}

### `torchmetrics.functional.pairwise_linear_similarity(x, y=None, reduction=None, zero_diagonal=None)` {#torchmetrics.functional.pairwise_linear_similarity}

[\[source\]](https://github.com/Lightning-AI/torchmetrics/blob/v1.9.0/src/torchmetrics/functional/pairwise/linear.py#L42-L84)

Calculate pairwise linear similarity.

```math
s_{lin}(x,y) = <x,y> = \sum_{d=1}^D x_d \cdot y_d
```

If both $`x`$ and $`y`$ are passed in, the calculation will be performed pairwise between the rows of $`x`$ and $`y`$. If only $`x`$ is passed in, the calculation will be performed between the rows of $`x`$.

Parameters:

*   **x** ([`Tensor`](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch v2.15)")) – Tensor with shape `[N, d]`
    
*   **y** ([`Optional`](https://docs.python.org/3/library/typing.html#typing.Optional "(in Python v3.15)")\[[`Tensor`](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch v2.15)")\]) – Tensor with shape `[M, d]`, optional
    
*   **reduction** ([`Optional`](https://docs.python.org/3/library/typing.html#typing.Optional "(in Python v3.15)")\[[`Literal`](https://docs.python.org/3/library/typing.html#typing.Literal "(in Python v3.15)")\[`'mean'`, `'sum'`, `'none'`, `None`\]\]) – reduction to apply along the last dimension. Choose between ‘mean’, ‘sum’ (applied along column dimension) or ‘none’, None for no reduction
    
*   **zero\_diagonal** ([`Optional`](https://docs.python.org/3/library/typing.html#typing.Optional "(in Python v3.15)")\[[`bool`](https://docs.python.org/3/builtins/functions.html#bool "(in Python v3.15)")\]) – if the diagonal of the distance matrix should be set to 0. If only x is given this defaults to True else if y is also given it defaults to False
    

Return type:

[`Tensor`](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor "(in PyTorch v2.15)")

Returns:

A `[N,N]` matrix of distances if only `x` is given, else a `[N,M]` matrix

Example

```python
>>> import torch
>>> from torchmetrics.functional.pairwise import pairwise_linear_similarity
>>> x = torch.tensor([[2, 3], [3, 5], [5, 8]], dtype=torch.float32)
>>> y = torch.tensor([[1, 0], [2, 1]], dtype=torch.float32)
>>> pairwise_linear_similarity(x, y)
tensor([[ 2.,  7.],
        [ 3., 11.],
        [ 5., 18.]])
>>> pairwise_linear_similarity(x)
tensor([[ 0., 21., 34.],
        [21.,  0., 55.],
        [34., 55.,  0.]])
```

---

**Navigation**

- Parent: [Pairwise](/docs/torchmetrics/1.9.0/pairwise.md)
