thermometer
- torchhd.thermometer(num_vectors: int, dimensions: int, vsa: Literal['BSC', 'MAP', 'HRR', 'FHRR', 'BSBC', 'VTB', 'MCR', 'CGR'] = 'MAP', *, requires_grad=False, **kwargs) VSATensor[source]
Creates a thermometer code for given dimensionality.
Implements similarity-preserving hypervectors as described in Sparse Binary Distributed Encoding of Scalars.
- Parameters:
num_vectors (int) – the number of hypervectors to generate.
dimensions (int) – the dimensionality of the hypervectors.
vsa – (
VSAOptions, optional): specifies the hypervector type to be instantiated. Default:"MAP".dtype (
torch.dtype, optional) – the desired data type of returned tensor. Default: ifNonedepends on VSATensor.device (
torch.device, optional) – the desired device of returned tensor. Default: ifNone, uses the current device for the default tensor type (see torch.set_default_tensor_type()).devicewill be the CPU for CPU tensor types and the current CUDA device for CUDA tensor types.requires_grad (bool, optional) – If autograd should record operations on the returned tensor. Default:
False.
Examples:
>>> torchhd.thermometer(7, 6, "BSC") tensor([[False, False, False, False, False, False], [ True, False, False, False, False, False], [ True, True, False, False, False, False], [ True, True, True, False, False, False], [ True, True, True, True, False, False], [ True, True, True, True, True, False], [ True, True, True, True, True, True]]) >>> torchhd.thermometer(4, 6, "MAP") tensor([[-1., -1., -1., -1., -1., -1.], [ 1., 1., -1., -1., -1., -1.], [ 1., 1., 1., 1., -1., -1.], [ 1., 1., 1., 1., 1., 1.]]) >>> torchhd.thermometer(6, 6, "FHRR") tensor([[-1.+0.j, -1.+0.j, -1.+0.j, -1.+0.j, -1.+0.j, -1.+0.j], [ 1.+0.j, -1.+0.j, -1.+0.j, -1.+0.j, -1.+0.j, -1.+0.j], [ 1.+0.j, 1.+0.j, -1.+0.j, -1.+0.j, -1.+0.j, -1.+0.j], [ 1.+0.j, 1.+0.j, 1.+0.j, -1.+0.j, -1.+0.j, -1.+0.j], [ 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, -1.+0.j, -1.+0.j], [ 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, -1.+-0.j]])