tensor
- sentence_transformers.util.tensor.batch_to_device(batch: dict[str, Any], target_device: device) dict[str, Any][source]
Send a PyTorch batch (i.e., a dictionary of string keys to Tensors) to a device (e.g. “cpu”, “cuda”, “mps”).
- Parameters:
batch (Dict[str, Tensor]) – The batch to send to the device.
target_device (torch.device) – The target device (e.g. “cpu”, “cuda”, “mps”).
- Returns:
The batch with tensors sent to the target device.
- Return type:
Dict[str, Tensor]
- sentence_transformers.util.tensor.compute_count_vector(embeddings: Tensor) Tensor[source]
Compute count vector from sparse embeddings indicating how many samples have non-zero values in each dimension.
- Parameters:
embeddings – Sparse tensor of shape (batch_size, vocab_size) or (vocab_size,)
- Returns:
Count vector of shape (vocab_size,)
- sentence_transformers.util.tensor.normalize_embeddings(embeddings: Tensor) Tensor[source]
Normalizes the embeddings matrix, so that each sentence embedding has unit length.
- Parameters:
embeddings (Tensor) – The input embeddings matrix.
- Returns:
The normalized embeddings matrix.
- Return type:
Tensor
- sentence_transformers.util.tensor.select_max_active_dims(embeddings: ndarray | Tensor, max_active_dims: int | None) Tensor[source]
Keeps only the top-k values (in absolute terms) for each embedding and creates a sparse tensor.
- Parameters:
embeddings (Union[np.ndarray, torch.Tensor]) – Embeddings to sparsify by keeping only top_k values.
max_active_dims (int) – Number of values to keep as non-zeros per embedding.
- Returns:
A sparse tensor containing only the top-k values per embedding.
- Return type:
- sentence_transformers.util.tensor.truncate_embeddings(embeddings: ndarray, truncate_dim: int | None) ndarray[source]
- sentence_transformers.util.tensor.truncate_embeddings(embeddings: Tensor, truncate_dim: int | None) Tensor
Truncates the embeddings matrix.
- Parameters:
embeddings (Union[np.ndarray, torch.Tensor]) – Embeddings to truncate.
truncate_dim (Optional[int]) – The dimension to truncate sentence embeddings to. None does no truncation.
Example
>>> from sentence_transformers import SentenceTransformer >>> from sentence_transformers.util import truncate_embeddings >>> model = SentenceTransformer("tomaarsen/mpnet-base-nli-matryoshka") >>> embeddings = model.encode(["It's so nice outside!", "Today is a beautiful day.", "He drove to work earlier"]) >>> embeddings.shape (3, 768) >>> model.similarity(embeddings, embeddings) tensor([[1.0000, 0.8100, 0.1426], [0.8100, 1.0000, 0.2121], [0.1426, 0.2121, 1.0000]]) >>> truncated_embeddings = truncate_embeddings(embeddings, 128) >>> truncated_embeddings.shape >>> model.similarity(truncated_embeddings, truncated_embeddings) tensor([[1.0000, 0.8092, 0.1987], [0.8092, 1.0000, 0.2716], [0.1987, 0.2716, 1.0000]])
- Returns:
Truncated embeddings.
- Return type:
Union[np.ndarray, torch.Tensor]