KeyedTensor¶
- class
KeyedTensor(iterable_or_mapping=None, **kwargs)¶ Bases:
collectionish._attydict.AttyDict-
abs()¶ Like torch.abs but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.abs() KeyedTensor(a=tensor([0.0075, 0.5364, 0.8230]), b=tensor([0.7359, 0.3852]))
>>> torch.abs(kt) KeyedTensor(a=tensor([0.0075, 0.5364, 0.8230]), b=tensor([0.7359, 0.3852]))
- Return type
KeyedTensor
-
acos()¶ Like torch.acos but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.acos() KeyedTensor(a=tensor([1.5783, 1.0046, 2.5375]), b=tensor([2.3978, 1.9662]))
>>> torch.acos(kt) KeyedTensor(a=tensor([1.5783, 1.0046, 2.5375]), b=tensor([2.3978, 1.9662]))
- Return type
KeyedTensor
-
add(other)¶ - Return type
KeyedTensor
-
all(dim=None, **kwargs)¶ Like torch.all but for keyed tensor. dim may optionally be a keyed
- Parameters
dim (
Union[Literal[‘keys’],int,None]) – the dimension to reduce -this may optionally be the string literal ‘key’ to reduce by key. Defaults to None.
-
any(dim=None, **kwargs)¶ Like torch.any but for keyed tensor, dim may optionally be a keyed
- Parameters
dim (
Union[Literal[‘keys’],int,None]) – the dimension to reduce -this may optionally be the string literal ‘key’ to reduce by key. Defaults to None.
-
argmax(dim=None, **kwargs)¶ Like torch.argmax but for keyed tensor, dim may optionally be a keyed
- Parameters
dim (
Union[Literal[‘keys’],int,None]) – the dimension to reduce -this may optionally be the string literal ‘key’ to reduce by key. Defaults to None.
Example
>>> import torch >>> from keyedtensor import KeyedTensor >>> >>> _ = torch.manual_seed(0) >>> kt = KeyedTensor(a=torch.rand(3, 3), b=torch.rand(3)) >>> kt.argmax(dim=-1) KeyedTensor(a=tensor([1, 2, 1]), b=tensor(0))
>>> kt.argmax(dim='key') KeyedTensor(a=tensor(7), b=tensor(0))
-
argmin(dim=None, **kwargs)¶ Like torch.argmin but for keyed tensor, dim may optionally be a keyed
- Parameters
dim (
Union[Literal[‘keys’],int,None]) – the dimension to reduce -this may optionally be the string literal ‘key’ to reduce by key. Defaults to None.
Example
>>> import torch >>> from keyedtensor import KeyedTensor >>> >>> _ = torch.manual_seed(0) >>> kt = KeyedTensor(a=torch.rand(3, 3), b=torch.rand(3)) >>> kt.argmin(dim=-1) KeyedTensor(a=tensor([2, 0, 2]), b=tensor(1))
>>> kt.argmin(dim='key') KeyedTensor(a=tensor(2), b=tensor(1))
-
asin()¶ Like torch.asin but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.asin() KeyedTensor(a=tensor([-0.0075, 0.5662, -0.9668]), b=tensor([-0.8271, -0.3954]))
>>> torch.asin(kt) KeyedTensor(a=tensor([-0.0075, 0.5662, -0.9668]), b=tensor([-0.8271, -0.3954]))
- Return type
KeyedTensor
-
atan()¶ Like torch.atan but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.atan() KeyedTensor(a=tensor([-0.0075, 0.4924, -0.6886]), b=tensor([-0.6344, -0.3676]))
>>> torch.atan(kt) KeyedTensor(a=tensor([-0.0075, 0.4924, -0.6886]), b=tensor([-0.6344, -0.3676]))
- Return type
KeyedTensor
-
ceil()¶ Like torch.ceil but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.ceil() KeyedTensor(a=tensor([-0., 1., -0.]), b=tensor([-0., -0.]))
>>> torch.ceil(kt) KeyedTensor(a=tensor([-0., 1., -0.]), b=tensor([-0., -0.]))
- Return type
KeyedTensor
-
chunk(chunks, dim=0)¶ - Return type
List[KeyedTensor]
-
cos()¶ Like torch.cos but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.cos() KeyedTensor(a=tensor([1.0000, 0.8595, 0.6800]), b=tensor([0.7412, 0.9267]))
>>> torch.cos(kt) KeyedTensor(a=tensor([1.0000, 0.8595, 0.6800]), b=tensor([0.7412, 0.9267]))
- Return type
KeyedTensor
-
cosh()¶ Like torch.cosh but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.cosh() KeyedTensor(a=tensor([1.0000, 1.1474, 1.3583]), b=tensor([1.2832, 1.0751]))
>>> torch.cosh(kt) KeyedTensor(a=tensor([1.0000, 1.1474, 1.3583]), b=tensor([1.2832, 1.0751]))
- Return type
KeyedTensor
-
cuda(*args, **kwargs)¶ - Return type
KeyedTensor
- property
data¶ - Return type
KeyedTensor
-
detach()¶ Like torch.detach but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.detach() KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> torch.detach(kt) KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
- Return type
KeyedTensor
-
digamma()¶ Like torch.digamma but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.digamma() KeyedTensor(a=tensor([132.9785, -1.7941, -4.7548]), b=tensor([-2.6389, 1.1087]))
>>> torch.digamma(kt) KeyedTensor(a=tensor([132.9785, -1.7941, -4.7548]), b=tensor([-2.6389, 1.1087]))
- Return type
KeyedTensor
-
dim()¶
-
div(other)¶ - Return type
KeyedTensor
-
eq(other)¶ - Return type
KeyedTensor
-
erf()¶ Like torch.erf but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.erf() KeyedTensor(a=tensor([-0.0084, 0.5519, -0.7556]), b=tensor([-0.7020, -0.4140]))
>>> torch.erf(kt) KeyedTensor(a=tensor([-0.0084, 0.5519, -0.7556]), b=tensor([-0.7020, -0.4140]))
- Return type
KeyedTensor
-
erfc()¶ Like torch.erfc but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.erfc() KeyedTensor(a=tensor([1.0084, 0.4481, 1.7556]), b=tensor([1.7020, 1.4140]))
>>> torch.erfc(kt) KeyedTensor(a=tensor([1.0084, 0.4481, 1.7556]), b=tensor([1.7020, 1.4140]))
- Return type
KeyedTensor
-
erfinv()¶ Like torch.erfinv but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.erfinv() KeyedTensor(a=tensor([-0.0066, 0.5183, -0.9547]), b=tensor([-0.7897, -0.3558]))
>>> torch.erfinv(kt) KeyedTensor(a=tensor([-0.0066, 0.5183, -0.9547]), b=tensor([-0.7897, -0.3558]))
- Return type
KeyedTensor
-
exp()¶ Like torch.exp but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.exp() KeyedTensor(a=tensor([0.9925, 1.7099, 0.4391]), b=tensor([0.4791, 0.6803]))
>>> torch.exp(kt) KeyedTensor(a=tensor([0.9925, 1.7099, 0.4391]), b=tensor([0.4791, 0.6803]))
- Return type
KeyedTensor
-
expm1()¶ Like torch.expm1 but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.expm1() KeyedTensor(a=tensor([-0.0075, 0.7099, -0.5609]), b=tensor([-0.5209, -0.3197]))
>>> torch.expm1(kt) KeyedTensor(a=tensor([-0.0075, 0.7099, -0.5609]), b=tensor([-0.5209, -0.3197]))
- Return type
KeyedTensor
-
floor()¶ Like torch.floor but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.floor() KeyedTensor(a=tensor([-1., 0., -1.]), b=tensor([-1., -1.]))
>>> torch.floor(kt) KeyedTensor(a=tensor([-1., 0., -1.]), b=tensor([-1., -1.]))
- Return type
KeyedTensor
-
frac()¶ Like torch.frac but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.frac() KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> torch.frac(kt) KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
- Return type
KeyedTensor
-
ge(other)¶ - Return type
KeyedTensor
-
hardshrink(*args, **kwargs)¶ - Return type
KeyedTensor
-
isfinite()¶ Like torch.isfinite but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=[float('inf'), 0.5364, -0.8230], b=[-0.7359, -0.3852]) >>> kt KeyedTensor(a=tensor([ inf, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.isinf() KeyedTensor(a=tensor([ True, False, False]), b=tensor([False, False]))
>>> torch.isinf(kt) KeyedTensor(a=tensor([ True, False, False]), b=tensor([False, False]))
- Return type
KeyedTensor
-
isinf()¶ Like torch.isinf but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=[float('inf'), 0.5364, -0.8230], b=[-0.7359, -0.3852]) >>> kt KeyedTensor(a=tensor([ inf, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.isinf() KeyedTensor(a=tensor([ True, False, False]), b=tensor([False, False]))
>>> torch.isinf(kt) KeyedTensor(a=tensor([ True, False, False]), b=tensor([False, False]))
- Return type
KeyedTensor
-
isnan()¶ Like torch.isnan but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = torch.sqrt(KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1) >>> kt KeyedTensor(a=tensor([ nan, 0.7324, nan]), b=tensor([nan, nan]))
>>> kt.isnan() KeyedTensor(a=tensor([ True, False, True]), b=tensor([True, True]))
>>> torch.isnan(kt) KeyedTensor(a=tensor([ True, False, True]), b=tensor([True, True]))
- Return type
KeyedTensor
-
le(other)¶ - Return type
KeyedTensor
-
lgamma()¶ Like torch.lgamma but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.lgamma() KeyedTensor(a=tensor([4.8990, 0.5040, 1.8482]), b=tensor([1.5368, 1.3299]))
>>> torch.lgamma(kt) KeyedTensor(a=tensor([4.8990, 0.5040, 1.8482]), b=tensor([1.5368, 1.3299]))
- Return type
KeyedTensor
-
log()¶ Like torch.log but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) >>> kt KeyedTensor(a=tensor([0.4963, 0.7682, 0.0885]), b=tensor([0.1320, 0.3074]))
>>> kt.log() KeyedTensor(a=tensor([-0.7007, -0.2637, -2.4250]), b=tensor([-2.0247, -1.1795]))
>>> torch.log(kt) KeyedTensor(a=tensor([-0.7007, -0.2637, -2.4250]), b=tensor([-2.0247, -1.1795]))
- Return type
KeyedTensor
-
log10()¶ Like torch.log10 but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) >>> kt KeyedTensor(a=tensor([0.4963, 0.7682, 0.0885]), b=tensor([0.1320, 0.3074]))
>>> kt.log10() KeyedTensor(a=tensor([-0.3043, -0.1145, -1.0532]), b=tensor([-0.8793, -0.5123]))
>>> torch.log10(kt) KeyedTensor(a=tensor([-0.3043, -0.1145, -1.0532]), b=tensor([-0.8793, -0.5123]))
- Return type
KeyedTensor
-
lt(other)¶ - Return type
KeyedTensor
-
mean(dim=None, **kwargs)¶ Like torch.mean but for keyed tensor.
- Parameters
dim (
Union[Literal[‘keys’],int,None]) – the dimension to reduce -this may optionally be the string literal ‘key’ to reduce by key. Defaults to None.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3, 3), b=torch.rand(3)) >>> kt KeyedTensor(a=tensor([[0.4963, 0.7682, 0.0885], [0.1320, 0.3074, 0.6341], [0.4901, 0.8964, 0.4556]]), b=tensor([0.6323, 0.3489, 0.4017]))
with dim unspecified we apply mean over all values in the KeyedTensor:
>>> kt.mean() tensor(0.4710)
specify a numeric dim to apply mean along each keyed tensor:
>>> kt.mean(dim=-1) KeyedTensor(a=tensor([0.4510, 0.3578, 0.6141]), b=tensor(0.4610))
or specify key to apply mean per keyed tensor:
>>> kt.mean(dim='key') KeyedTensor(a=tensor(0.4743), b=tensor(0.4610))
calling torch.mean on a KeyedTensor works as expected:
>>> torch.mean(kt, dim='key') KeyedTensor(a=tensor(0.4743), b=tensor(0.4610))
-
mul(other)¶ - Return type
KeyedTensor
-
neg()¶ Like torch.neg but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.neg() KeyedTensor(a=tensor([ 0.0075, -0.5364, 0.8230]), b=tensor([0.7359, 0.3852]))
>>> torch.neg(kt) KeyedTensor(a=tensor([ 0.0075, -0.5364, 0.8230]), b=tensor([0.7359, 0.3852]))
- Return type
KeyedTensor
-
norm(p='fro', dim=None, **kwargs)¶ Like torch.norm but for keyed tensor, dim may optionally be a keyed
- Parameters
p – norm type (see torch.norm for full details. Defaults to ‘fro’.
dim (
Union[Literal[‘keys’],int,None]) – the dimension to reduce -this may optionally be the string literal ‘key’ to reduce by key. Defaults to None.
Example
>>> import torch >>> from keyedtensor import KeyedTensor >>> _ = torch.manual_seed(0) >>> >>> kt = KeyedTensor(a=torch.rand(3, 3), b=torch.rand(3)) >>> kt.norm() tensor(1.8145)
>>> kt.norm(dim=-1) KeyedTensor(a=tensor([0.9188, 0.7169, 1.1187]), b=tensor(0.8264))
>>> kt.norm(dim='key') KeyedTensor(a=tensor(1.6154), b=tensor(0.8264))
>>> kt.norm(p=1, dim='key') KeyedTensor(a=tensor(4.2687), b=tensor(1.3829))
-
numel()¶ Like torch.numel but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.numel() KeyedTensor(a=tensor(3), b=tensor(2))
>>> torch.numel(kt) KeyedTensor(a=tensor(3), b=tensor(2))
- Return type
KeyedTensor
-
polygamma(*args, **kwargs)¶
-
pow(other)¶ - Return type
KeyedTensor
-
prod(dim=None, **kwargs)¶ Like torch.prod but for keyed tensor.
- Parameters
dim (
Union[Literal[‘keys’],int,None]) – the dimension to reduce -this may optionally be the string literal ‘key’ to reduce by key. Defaults to None.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3, 3), b=torch.rand(3)) >>> kt KeyedTensor(a=tensor([[0.4963, 0.7682, 0.0885], [0.1320, 0.3074, 0.6341], [0.4901, 0.8964, 0.4556]]), b=tensor([0.6323, 0.3489, 0.4017]))
with dim unspecified we apply prod over all values in the KeyedTensor:
>>> kt.prod() tensor(1.5400e-05)
specify a numeric dim to apply prod along each keyed tensor:
>>> kt.prod(dim=-1) KeyedTensor(a=tensor([0.0337, 0.0257, 0.2002]), b=tensor(0.0886))
or specify key to apply prod per keyed tensor:
>>> kt.prod(dim='key') KeyedTensor(a=tensor(0.0002), b=tensor(0.0886))
calling torch.prod on a KeyedTensor works as expected:
>>> torch.prod(kt, dim='key') KeyedTensor(a=tensor(0.0002), b=tensor(0.0886))
-
reciprocal()¶ Like torch.reciprocal but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.reciprocal() KeyedTensor(a=tensor([-133.5681, 1.8641, -1.2150]), b=tensor([-1.3588, -2.5964]))
>>> torch.reciprocal(kt) KeyedTensor(a=tensor([-133.5681, 1.8641, -1.2150]), b=tensor([-1.3588, -2.5964]))
- Return type
KeyedTensor
-
relu()¶ Like torch.relu but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.relu() KeyedTensor(a=tensor([0.0000, 0.5364, 0.0000]), b=tensor([0., 0.]))
>>> torch.relu(kt) KeyedTensor(a=tensor([0.0000, 0.5364, 0.0000]), b=tensor([0., 0.]))
- Return type
KeyedTensor
-
round()¶ Like torch.round but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.round() KeyedTensor(a=tensor([-0., 1., -1.]), b=tensor([-1., -0.]))
>>> torch.round(kt) KeyedTensor(a=tensor([-0., 1., -1.]), b=tensor([-1., -0.]))
- Return type
KeyedTensor
-
rsqrt()¶ Like torch.rsqrt but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) >>> kt KeyedTensor(a=tensor([0.4963, 0.7682, 0.0885]), b=tensor([0.1320, 0.3074]))
>>> kt.rsqrt() KeyedTensor(a=tensor([1.4195, 1.1409, 3.3619]), b=tensor([2.7521, 1.8036]))
>>> torch.rsqrt(kt) KeyedTensor(a=tensor([1.4195, 1.1409, 3.3619]), b=tensor([2.7521, 1.8036]))
- Return type
KeyedTensor
- property
shape¶ return a KeyedSize for this KeyedTensor
see keyedtensor.KeyedSize docs for more details on working with KeyedSize.
Example
>>> from keyedtensor import KeyedTensor >>> import torch >>> >>> x = KeyedTensor(a=torch.rand(3, 4), b=torch.rand(3, 1), c=torch.rand(3)) >>> x.size() KeyedSize(a=torch.Size([3, 4]), b=torch.Size([3, 1]), c=torch.Size([3]))
- Return type
-
sigmoid()¶ Like torch.sigmoid but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.sigmoid() KeyedTensor(a=tensor([0.4981, 0.6310, 0.3051]), b=tensor([0.3239, 0.4049]))
>>> torch.sigmoid(kt) KeyedTensor(a=tensor([0.4981, 0.6310, 0.3051]), b=tensor([0.3239, 0.4049]))
- Return type
KeyedTensor
-
sign()¶ Like torch.sign but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.sign() KeyedTensor(a=tensor([-1., 1., -1.]), b=tensor([-1., -1.]))
>>> torch.sign(kt) KeyedTensor(a=tensor([-1., 1., -1.]), b=tensor([-1., -1.]))
- Return type
KeyedTensor
-
sin()¶ Like torch.sin but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.sin() KeyedTensor(a=tensor([-0.0075, 0.5111, -0.7332]), b=tensor([-0.6713, -0.3757]))
>>> torch.sin(kt) KeyedTensor(a=tensor([-0.0075, 0.5111, -0.7332]), b=tensor([-0.6713, -0.3757]))
- Return type
KeyedTensor
-
sinh()¶ Like torch.sinh but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.sinh() KeyedTensor(a=tensor([-0.0075, 0.5625, -0.9192]), b=tensor([-0.8042, -0.3947]))
>>> torch.sinh(kt) KeyedTensor(a=tensor([-0.0075, 0.5625, -0.9192]), b=tensor([-0.8042, -0.3947]))
- Return type
KeyedTensor
-
split(split_size_or_sections, dim=0)¶ - Return type
List[KeyedTensor]
-
sqrt()¶ Like torch.sqrt but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) >>> kt KeyedTensor(a=tensor([0.4963, 0.7682, 0.0885]), b=tensor([0.1320, 0.3074]))
>>> kt.sqrt() KeyedTensor(a=tensor([0.7045, 0.8765, 0.2975]), b=tensor([0.3634, 0.5545]))
>>> torch.sqrt(kt) KeyedTensor(a=tensor([0.7045, 0.8765, 0.2975]), b=tensor([0.3634, 0.5545]))
- Return type
KeyedTensor
-
square()¶ Like torch.square but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.square() KeyedTensor(a=tensor([5.6052e-05, 2.8777e-01, 6.7740e-01]), b=tensor([0.5416, 0.1483]))
>>> torch.square(kt) KeyedTensor(a=tensor([5.6052e-05, 2.8777e-01, 6.7740e-01]), b=tensor([0.5416, 0.1483]))
- Return type
KeyedTensor
-
squeeze(*args, **kwargs)¶ - Return type
KeyedTensor
-
std(dim=None, **kwargs)¶ Like torch.std but for keyed tensor.
- Parameters
dim (
Union[Literal[‘keys’],int,None]) – the dimension to reduce -this may optionally be the string literal ‘key’ to reduce by key. Defaults to None.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3, 3), b=torch.rand(3)) >>> kt KeyedTensor(a=tensor([[0.4963, 0.7682, 0.0885], [0.1320, 0.3074, 0.6341], [0.4901, 0.8964, 0.4556]]), b=tensor([0.6323, 0.3489, 0.4017]))
with dim unspecified we apply std over all values in the KeyedTensor:
>>> kt.std() tensor(0.2395)
specify a numeric dim to apply std along each keyed tensor:
>>> kt.std(dim=-1) KeyedTensor(a=tensor([0.3421, 0.2548, 0.2452]), b=tensor(0.1507))
or specify key to apply std per keyed tensor:
>>> kt.std(dim='key') KeyedTensor(a=tensor(0.2704), b=tensor(0.1507))
calling torch.std on a KeyedTensor works as expected:
>>> torch.std(kt, dim='key') KeyedTensor(a=tensor(0.2704), b=tensor(0.1507))
-
sub(other)¶ - Return type
KeyedTensor
-
sum(dim=None, **kwargs)¶ Like torch.sum but for keyed tensor.
- Parameters
dim (
Union[Literal[‘keys’],int,None]) – the dimension to reduce -this may optionally be the string literal ‘key’ to reduce by key. Defaults to None.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3, 3), b=torch.rand(3)) >>> kt KeyedTensor(a=tensor([[0.4963, 0.7682, 0.0885], [0.1320, 0.3074, 0.6341], [0.4901, 0.8964, 0.4556]]), b=tensor([0.6323, 0.3489, 0.4017]))
with dim unspecified we apply sum over all values in the KeyedTensor:
>>> kt.sum() tensor(5.6516)
specify a numeric dim to apply sum along each keyed tensor:
>>> kt.sum(dim=-1) KeyedTensor(a=tensor([1.3530, 1.0735, 1.8422]), b=tensor(1.3829))
or specify key to apply sum per keyed tensor:
>>> kt.sum(dim='key') KeyedTensor(a=tensor(4.2687), b=tensor(1.3829))
calling torch.sum on a KeyedTensor works as expected:
>>> torch.sum(kt, dim='key') KeyedTensor(a=tensor(4.2687), b=tensor(1.3829))
-
t(*args, **kwargs)¶
-
tan(*args, **kwargs)¶
-
tanh(*args, **kwargs)¶
-
to(*args, **kwargs)¶
-
torchfunc_registry: keyedtensor._registry.TorchFuncRegistry¶ a classlevel registry for registring __torch_function__ overides.
-
transpose(dim0, dim1)¶ - Return type
KeyedTensor
-
true_divide(other)¶ - Return type
KeyedTensor
-
trunc()¶ Like torch.trunc but for keyed tensor.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3), b=torch.rand(2)) * 2 - 1 >>> kt KeyedTensor(a=tensor([-0.0075, 0.5364, -0.8230]), b=tensor([-0.7359, -0.3852]))
>>> kt.trunc() KeyedTensor(a=tensor([-0., 0., -0.]), b=tensor([-0., -0.]))
>>> torch.trunc(kt) KeyedTensor(a=tensor([-0., 0., -0.]), b=tensor([-0., -0.]))
- Return type
KeyedTensor
-
unbind()¶ - Return type
List[KeyedTensor]
-
unsqueeze(dim)¶ - Return type
KeyedTensor
-
var(dim=None, **kwargs)¶ Like torch.var but for keyed tensor.
- Parameters
dim (
Union[Literal[‘keys’],int,None]) – the dimension to reduce -this may optionally be the string literal ‘key’ to reduce by key. Defaults to None.
Example
>>> import torch >>> _ = torch.manual_seed(0) >>> from keyedtensor import KeyedTensor >>> >>> kt = KeyedTensor(a=torch.rand(3, 3), b=torch.rand(3)) >>> kt KeyedTensor(a=tensor([[0.4963, 0.7682, 0.0885], [0.1320, 0.3074, 0.6341], [0.4901, 0.8964, 0.4556]]), b=tensor([0.6323, 0.3489, 0.4017]))
with dim unspecified we apply var over all values in the KeyedTensor:
>>> kt.var() tensor(0.0574)
specify a numeric dim to apply var along each keyed tensor:
>>> kt.var(dim=-1) KeyedTensor(a=tensor([0.1171, 0.0649, 0.0601]), b=tensor(0.0227))
or specify key to apply var per keyed tensor:
>>> kt.var(dim='key') KeyedTensor(a=tensor(0.0731), b=tensor(0.0227))
calling torch.var on a KeyedTensor works as expected:
>>> torch.var(kt, dim='key') KeyedTensor(a=tensor(0.0731), b=tensor(0.0227))
-