sum() can get one or more sum values as shown below:
*Memos:
sum() can be called both from torch and a tensor.
The 2nd argument is one or more dimensions with torch.
The 1st argument is one or more dimensions with a tensor.
my_tensor = torch.tensor([[5, 4, 7, 7],
[6, 5, 3, 5],
[3, 8, 9, 3]])
torch.sum(my_tensor)
my_tensor.sum()
# tensor(65)
torch.sum(my_tensor, 0)
my_tensor.sum(0)
torch.sum(my_tensor, (0,))
my_tensor.sum((0,))
torch.sum(my_tensor, –2)
my_tensor.sum(–2)
torch.sum(my_tensor, (–2,))
my_tensor.sum((–2,))
# tensor([14, 17, 19, 15])
torch.sum(my_tensor, 1)
my_tensor.sum(1)
torch.sum(my_tensor, (1,))
my_tensor.sum((1,))
torch.sum(my_tensor, –1)
my_tensor.sum(–1)
torch.sum(my_tensor, (–1,))
my_tensor.sum((–1,))
# tensor([23, 19, 23])
torch.sum(my_tensor, (0, 1))
my_tensor.sum((0, 1))
torch.sum(my_tensor, (0, –1))
my_tensor.sum((0, –1))
torch.sum(my_tensor, (1, 0))
my_tensor.sum((1, 0))
torch.sum(my_tensor, (1, –2))
my_tensor.sum((1, –2))
torch.sum(my_tensor, (–1, 0))
my_tensor.sum((–1, 0))
torch.sum(my_tensor, (–1, –2))
my_tensor.sum((–1, –2))
torch.sum(my_tensor, (–2, 1))
my_tensor.sum((–2, 1))
torch.sum(my_tensor, (–2, –1))
my_tensor.sum((–2, –1))
# tensor(65)
my_tensor = torch.tensor([[[0, 1, 2], [3, 4, 5]],
[[6, 7, 8], [9, 10, 11]],
[[12, 13, 14], [15, 16, 17]],
[[18, 19, 20], [21, 22, 23]]])
torch.sum(my_tensor) # tensor(276)
my_tensor.sum() # tensor(276)
torch.sum(my_tensor, 0)
my_tensor.sum(0)
torch.sum(my_tensor, (0,))
my_tensor.sum((0,))
torch.sum(my_tensor, –3)
my_tensor.sum(–3)
torch.sum(my_tensor, (–3,))
my_tensor.sum((–3,))
# tensor([[36, 40, 44], [48, 52, 56]])
torch.sum(my_tensor, 1)
my_tensor.sum(1)
torch.sum(my_tensor, (1,))
my_tensor.sum((1,))
torch.sum(my_tensor, –2)
my_tensor.sum(–2)
torch.sum(my_tensor, (–2,))
my_tensor.sum((–2,))
# tensor([[3, 5, 7], [15, 17, 19], [27, 29, 31], [39, 41, 43]])
torch.sum(my_tensor, 2)
my_tensor.sum(2)
torch.sum(my_tensor, (2,))
my_tensor.sum((2,))
torch.sum(my_tensor, –1)
my_tensor.sum(–1)
torch.sum(my_tensor, (–1,))
my_tensor.sum((–1,))
# tensor([[3, 12], [21, 30], [39, 48], [57, 66]])
torch.sum(my_tensor, (0, 1))
my_tensor.sum((0, 1))
torch.sum(my_tensor, (0, –2))
my_tensor.sum((0, –2))
torch.sum(my_tensor, (1, 0))
my_tensor.sum((1, 0))
torch.sum(my_tensor, (1, –3))
my_tensor.sum((1, –3))
torch.sum(my_tensor, (–2, 0))
my_tensor.sum((–2, 0))
torch.sum(my_tensor, (–2, –3))
my_tensor.sum((–2, –3))
torch.sum(my_tensor, (–3, 1))
my_tensor.sum((–3, 1))
torch.sum(my_tensor, (–3, –2))
my_tensor.sum((–3, –2))
# tensor([84, 92, 100])
torch.sum(my_tensor, (0, 2))
my_tensor.sum((0, 2))
torch.sum(my_tensor, (0, –1))
my_tensor.sum((0, –1))
torch.sum(my_tensor, (2, 0))
my_tensor.sum((2, 0))
torch.sum(my_tensor, (2, –3))
my_tensor.sum((2, –3))
torch.sum(my_tensor, (–1, 0))
my_tensor.sum((–1, 0))
torch.sum(my_tensor, (–1, –3))
my_tensor.sum((–1, –3))
torch.sum(my_tensor, (–3, 2))
my_tensor.sum((–3, 2))
torch.sum(my_tensor, (–3, –1))
my_tensor.sum((–3, –1))
# tensor([120, 156])
torch.sum(my_tensor, (1, 2))
my_tensor.sum((1, 2))
torch.sum(my_tensor, (1, –1))
my_tensor.sum((1, –1))
torch.sum(my_tensor, (2, 1))
my_tensor.sum((2, 1))
torch.sum(my_tensor, (2, –2))
my_tensor.sum((2, –2))
torch.sum(my_tensor, (–1, 1))
my_tensor.sum((–1, 1))
torch.sum(my_tensor, (–1, –2))
my_tensor.sum((–1, –2))
torch.sum(my_tensor, (–2, 2))
my_tensor.sum((–2, 2))
torch.sum(my_tensor, (–2, –1))
my_tensor.sum((–2, –1))
# tensor([15, 51, 87, 123])
torch.sum(my_tensor, (0, 1, 2))
my_tensor.sum((0, 1, 2))
etc.
# tensor(276)
prod() can get one or more product values as shown below:
*Memos:
prod() can be called both from torch and a tensor.
The 2nd argument is one or more dimensions with torch.
The 1st argument is one or more dimensions with a tensor.
my_tensor = torch.tensor([[5, 4, 7, 7],
[6, 5, 3, 5],
[3, 8, 9, 3]])
torch.prod(my_tensor)
my_tensor.prod()
# tensor(285768000)
torch.prod(my_tensor, 0)
my_tensor.prod(0)
torch.prod(my_tensor, –2)
my_tensor.prod(–2)
# tensor([ 90, 160, 189, 105])
torch.prod(my_tensor, 1)
my_tensor.prod(1)
torch.prod(my_tensor, –1)
my_tensor.prod(–1)
# tensor([980, 450, 648])
my_tensor = torch.tensor([[[0, 1, 2], [3, 4, 5]],
[[6, 7, 8], [9, 10, 11]],
[[12, 13, 14], [15, 16, 17]],
[[18, 19, 20], [21, 22, 23]]])
torch.prod(my_tensor)
my_tensor.prod()
# tensor(0)
torch.prod(my_tensor, 0)
my_tensor.prod(0)
torch.prod(my_tensor, –3)
my_tensor.prod(–3)
# tensor([[0, 1729, 4480],
# [8505, 14080, 21505]])
torch.prod(my_tensor, 1)
my_tensor.prod(1)
torch.prod(my_tensor, (1,))
my_tensor.prod((1,))
torch.prod(my_tensor, –2)
my_tensor.prod(–2)
# tensor([[0, 4, 10],
# [54, 70, 88],
# [180, 208, 238],
# [378, 418, 460]])
torch.prod(my_tensor, 2)
my_tensor.prod(2)
torch.prod(my_tensor, –1)
my_tensor.prod(–1)
# tensor([[0, 60],
# [336, 990],
# [2184, 4080],
# [6840, 10626]])