绑定序列
- class torchhd.structures.BindSequence(dimensions: int, vsa: Literal['BSC', 'MAP', 'HRR', 'FHRR', 'BSBC', 'VTB', 'MCR'] = 'MAP', *, device=None, dtype=None)[来源]
- class torchhd.structures.BindSequence(input: VSATensor, *, size=0)
基于超向量绑定的序列数据结构。
创建一个具有dim维度的空序列或从输入张量创建。
- Parameters:
维度 (整数) – 序列的维度数量。
vsa – (
VSAOptions, 可选): 指定使用的超向量类型和操作 (默认:"MAP").dtype (
torch.dtype, 可选) – 返回张量的期望数据类型。默认值:如果None,则使用全局默认值(参见torch.set_default_tensor_type())。device (
torch.device, 可选) – 返回张量的期望设备。默认值:如果None,则使用当前设备作为默认张量类型(参见 torch.set_default_tensor_type())。device对于 CPU 张量类型将是 CPU,对于 CUDA 张量类型将是当前的 CUDA 设备。输入 (VSATensor) – 表示基于绑定序列的张量。
size (int, 可选) – 作为输入提供的序列的长度。默认值:
0。
示例:
>>> DS = structures.BindSequence(10000)
- append(input: VSATensor) None[来源]
将输入张量附加到序列的右侧。
- Parameters:
输入 (VSATensor) – 要附加到序列的超向量。
示例:
>>> letters = list(string.ascii_lowercase) >>> letters_hv = torchhd.random(len(letters), 10000) >>> DS.append(letters_hv[0])
- appendleft(input: VSATensor) None[来源]
将输入张量附加到序列的左侧。
- Parameters:
输入 (VSATensor) – 要附加到序列右侧的超向量。
示例:
>>> DS.appendleft(letters_hv[1])
- classmethod from_tensor(input: VSATensor)[来源]
从张量创建序列。
参见:
bind_sequence()。- Parameters:
输入 (VSATensor) – 包含形成序列的超向量的张量。
- Examples::
>>> letters_hv = torchhd.random(len(letters), 10000) >>> DS = structures.BindSequence.from_tensor(letters_hv)
- pop(input: VSATensor) None[来源]
从序列的右侧弹出输入张量。
- Parameters:
input (VSATensor) – 要从序列中弹出的超向量。
示例:
>>> DS.pop(letters_hv[0])