级别
- torchhd.level(num_vectors: int, dimensions: int, vsa: Literal['BSC', 'MAP', 'HRR', 'FHRR', 'BSBC', 'VTB', 'MCR'] = 'MAP', *, randomness: float = 0.0, requires_grad=False, **kwargs) VSATensor[来源]
创建一组级别相关的高维向量。
实现级别超向量作为随机超向量之间的插值,如An Extension to Basis-Hypervectors for Learning from Circular Data in Hyperdimensional Computing中所述。 生成的集合中的第一个和最后一个超向量是准正交的。
- Parameters:
num_vectors (int) – 要生成的超向量的数量。
维度 (int) – 超向量的维度。
vsa – (
VSAOptions, 可选): 指定要实例化的超向量类型。默认值:"MAP".随机性 (浮点数, 可选) – 用于在
0.0级别和1.0随机超向量之间插值的r值。默认值:0.0。generator (
torch.Generator, 可选) – 用于采样的伪随机数生成器。dtype (
torch.dtype, 可选) – 返回张量的期望数据类型。默认值:如果None则取决于 VSATensor。device (
torch.device, 可选) – 返回张量的期望设备。默认值:如果None,则使用当前设备作为默认张量类型(参见 torch.set_default_tensor_type())。device对于 CPU 张量类型将是 CPU,对于 CUDA 张量类型将是当前的 CUDA 设备。requires_grad (bool, 可选) – 如果自动求导应该记录返回张量上的操作。默认值:
False。
示例:
>>> torchhd.level(5, 6, "BSC") tensor([[ True, True, True, True, False, False], [ True, True, True, True, False, False], [False, True, True, True, True, False], [False, True, True, True, True, False], [False, True, True, True, True, False]]) >>> torchhd.level(5, 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.], [ 1., -1., 1., 1., 1., -1.]]) >>> torchhd.level(5, 6, "FHRR") tensor([[-0.996+0.079j, 0.447+0.894j, -0.840-0.541j, -0.999+0.020j, -0.742+0.669j, -0.999+0.042j], [-0.886-0.462j, 0.447+0.894j, -0.840-0.541j, -0.999+0.020j, -0.742+0.669j, -0.886+0.462j], [-0.886-0.462j, 0.447+0.894j, -0.146-0.989j, -0.999+0.020j, -0.350-0.936j, -0.886+0.462j], [-0.886-0.462j, 0.507+0.861j, -0.146-0.989j, -0.999+0.020j, -0.350-0.936j, -0.886+0.462j], [-0.886-0.462j, 0.507+0.861j, -0.146-0.989j, -0.611-0.791j, -0.350-0.936j, -0.886+0.462j]])