KeyedSize¶
- class
KeyedSize(keys, values)¶ Bases:
objectA simple keyed representation of size for KeyedTensors
Note
KeyedSize objects should not be instantiated directly use the size method or shape property of KeyedTensor if you want one.
Example
>>> from keyedtensor import KeyedTensor >>> import torch >>> >>> x = KeyedTensor(a=torch.rand(3, 4, 2), b=torch.rand(3, 1, 3), c=torch.rand(3, 1)) >>> x.shape KeyedSize(a=torch.Size([3, 4, 2]), b=torch.Size([3, 1, 3]), c=torch.Size([3, 1]))
you can index in a couple different ways – for instance you can get the shape of a particular key with attribute access or use a string:
>>> x.shape.a torch.Size([3, 4, 2])
>>> x.shape['b'] torch.Size([3, 1, 3])
you can also index with ints or slices to get values across all keys:
>>> x.shape[0] KeyedSize(a=3, b=3, c=3)
>>> x.shape[:2] KeyedSize(a=torch.Size([3, 4]), b=torch.Size([3, 1]), c=torch.Size([3, 1]))
-
items()¶
-
keys()¶
-
numel()¶ like torch.Size.numel but for KeyedSizes, retuns one numel result per key.
Example
>>> import torch >>> from keyedtensor import KeyedTensor >>> >>> x = KeyedTensor(a=torch.rand(2, 3), b=torch.rand(2, 10)) >>> x.shape KeyedSize(a=torch.Size([2, 3]), b=torch.Size([2, 10]))
>>> x.shape.numel() KeyedSize(a=6, b=20)
- Return type
-
values()¶
-