级别
- class torchhd.embeddings.Level(num_embeddings: int, embedding_dim: int, vsa: Literal['BSC', 'MAP', 'HRR', 'FHRR', 'BSBC', 'VTB', 'MCR'] = 'MAP', low: float = 0.0, high: float = 1.0, randomness: float = 0.0, requires_grad: bool = False, max_norm: float | None = None, norm_type: float = 2.0, scale_grad_by_freq: bool = False, sparse: bool = False, device=None, dtype=None, **kwargs)[来源]
围绕
level()的嵌入包装器。类继承自Embedding并支持相同的关键字参数。
- Parameters:
num_embeddings (int) – 生成的超向量数量。
embedding_dim (int) – 超向量的维度。
vsa – (
VSAOptions, 可选): 指定要实例化的超向量类型。默认值:"MAP".low (float, optional) – 表示实数范围的下限。默认值:
0.0高 (浮点数, 可选) – 表示实数范围的上限。默认值:
1.0随机性 (float, 可选) – 在
0.0处的层级超向量和1.0处的随机超向量之间插值的r值。默认值:0.0。dtype (
torch.dtype, 可选) – 返回张量的期望数据类型。默认值:如果None,则使用VSATensor的默认值。device (
torch.device, 可选) – 返回张量的期望设备。默认值:如果None,则使用当前设备作为默认张量类型(参见 torch.set_default_tensor_type())。device对于 CPU 张量类型将是 CPU,对于 CUDA 张量类型将是当前的 CUDA 设备。requires_grad (bool, 可选) – 如果自动求导应该记录返回张量上的操作。默认值:
False。
在低和高之间的区间之外的值会被裁剪到闭合边界。
示例:
>>> emb = embeddings.Level(4, 6) >>> x = torch.rand(4) >>> x tensor([0.6444, 0.9286, 0.9225, 0.3675]) >>> emb(x) MAPTensor([[ 1., 1., 1., -1., 1., 1.], [ 1., 1., -1., 1., 1., 1.], [ 1., 1., -1., 1., 1., 1.], [ 1., 1., 1., -1., -1., 1.]]) >>> emb = embeddings.Level(4, 6, "BSC") >>> x = torch.rand(4) >>> x tensor([0.1825, 0.1541, 0.4435, 0.1512]) >>> emb(x) BSCTensor([[False, True, False, False, False, False], [False, True, False, False, False, False], [False, True, False, False, False, False], [False, True, False, False, False, False]])