*Memos:
- My post explains sum() and nansum().
- My post explains mean() and nanmean().
- My post explains median() and nanmedian().
- My post explains cumsum() and cumprod().
prod() can get the 0D or more D tensor of zero or more product's elements from the 0D or more D tensor of zero or more elements as shown below:
*Memos:
-
prod()
can be used with torch or a tensor. - The 1st argument(
input
) withtorch
or using a tensor(Required-Type:tensor
ofint
,float
,complex
orbool
). - The 2nd argument with
torch
or the 1st argument with a tensor isdim
(Optional-Type:int
). - The 3rd argument with
torch
or the 2nd argument with a tensor iskeepdim
(Optional-Default:False
-Type:bool
): *Memos:-
keepdim=
must be used withdim=
. -
My post explains
keepdim
argument.
-
- There is
dtype
argument withtorch
(Optional-Default:None
-Type:dtype): *Memos:- If it's
None
, it's inferred frominput
or a tensor. -
dtype=
must be used. -
My post explains
dtype
argument.
- If it's
- The empty 1D or more D
input
tensor or tensor withoutdim
or with the deepestdim
gets a one.
import torch
my_tensor = torch.tensor([1, 2, 3, 4])
torch.prod(input=my_tensor)
my_tensor.prod()
torch.prod(input=my_tensor, dim=0)
torch.prod(input=my_tensor, dim=-1)
# tensor(24)
my_tensor = torch.tensor([[1, 2, 3, 4],
[5, 6, 7, 8]])
torch.prod(input=my_tensor)
# tensor(40320)
torch.prod(input=my_tensor, dim=0)
torch.prod(input=my_tensor, dim=-2)
# tensor([5, 12, 21, 32])
torch.prod(input=my_tensor, dim=1)
torch.prod(input=my_tensor, dim=-1)
# tensor([24, 1680])
my_tensor = torch.tensor([[1., 2., 3., 4.],
[5., 6., 7., 8.]])
torch.prod(input=my_tensor)
# tensor(40320.)
my_tensor = torch.tensor([[1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j],
[5.+0.j, 6.+0.j, 7.+0.j, 8.+0.j]])
torch.prod(input=my_tensor)
# tensor(40320.+0.j)
my_tensor = torch.tensor([[True, False, True, False],
[False, True, False, True]])
torch.prod(input=my_tensor)
# tensor(0)
my_tensor = torch.tensor([])
torch.prod(input=my_tensor)
# tensor(1.)
cartesian_prod() can get the 1D or 2D tensor of zero or more cartesian product's elements from the one or more 1D tensors of zero or more elements as shown below:
*Memos:
-
cartesian_prod()
can be used withtorch
but not with a tensor. - The 1st or more arguments with
torch
are*tensors
(Required at least one tensor-Type:tensor
ofint
,float
,complex
orbool
). *Memos:- Don't use any keyword like
*tensors=
ortensors=
. - Tensors must be the same type.
- Don't use any keyword like
import torch
my_tensor = torch.tensor([1, 2, 3, 4])
torch.cartesian_prod(my_tensor)
# tensor([1, 2, 3, 4])
my_tensor = torch.tensor([1., 2., 3., 4.])
torch.cartesian_prod(my_tensor)
# tensor([1., 2., 3., 4.])
my_tensor = torch.tensor([1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j])
torch.cartesian_prod(my_tensor)
# tensor([1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j])
my_tensor = torch.tensor([True, False, True, False])
torch.cartesian_prod(my_tensor)
# tensor([True, False, True, False])
tensor1 = torch.tensor([1, 2, 3, 4])
tensor2 = torch.tensor([5, 6])
torch.cartesian_prod(tensor1, tensor2)
# tensor([[1, 5],
# [1, 6],
# [2, 5],
# [2, 6],
# [3, 5],
# [3, 6],
# [4, 5],
# [4, 6]])
tensor1 = torch.tensor([1, 2, 3, 4])
tensor2 = torch.tensor([5, 6])
tensor3 = torch.tensor([7, 8, 9])
torch.cartesian_prod(tensor1, tensor2, tensor3)
# tensor([[1, 5, 7],
# [1, 5, 8],
# [1, 5, 9],
# [1, 6, 7],
# [1, 6, 8],
# [1, 6, 9],
# [2, 5, 7],
# [2, 5, 8],
# [2, 5, 9],
# [2, 6, 7],
# [2, 6, 8],
# [2, 6, 9],
# [3, 5, 7],
# [3, 5, 8],
# [3, 5, 9],
# [3, 6, 7],
# [3, 6, 8],
# [3, 6, 9],
# [4, 5, 7],
# [4, 5, 8],
# [4, 5, 9],
# [4, 6, 7],
# [4, 6, 8],
# [4, 6, 9]])
Top comments (0)