This content originally appeared on DEV Community and was authored by Super Kai (Kazuya Ito)
tile() can repeat the zero or more elements of a 0D or more D tensor as shown below:
*Memos:
-
tile()can be used with torch or a tensor. - The 1st argument(
tensorofint,float,complexorbool) withtorchor using a tensor(tensorofint,float,complexorbool) isinput(Required). - The 2nd argument(
tuple) withtorchor the 1st argument(tuple) with a tensor isdims(Required). *Memos:- If at least one dimension is
0, an empty tensor is returned. - The 1st argument…(
int,int…) with a tensor is alsodims. *dims=mustn’t be used.
- If at least one dimension is
import torch
my_tensor = torch.tensor([3, 5, 1])
torch.tile(input=my_tensor, dims=(1,))
my_tensor.tile(dims=(1,))
# tensor([3, 5, 1])
torch.tile(input=my_tensor, dims=(2,))
# tensor([3, 5, 1, 3, 5, 1])
torch.tile(input=my_tensor, dims=(3,))
# tensor([3, 5, 1, 3, 5, 1, 3, 5, 1])
etc.
torch.tile(input=my_tensor, dims=(1, 1))
# tensor([[3, 5, 1]])
torch.tile(input=my_tensor, dims=(1, 2))
# tensor([[3, 5, 1, 3, 5, 1]])
torch.tile(input=my_tensor, dims=(1, 3))
# tensor([[3, 5, 1, 3, 5, 1, 3, 5, 1]])
etc.
torch.tile(input=my_tensor, dims=(2, 1))
# tensor([[3, 5, 1],
# [3, 5, 1]])
torch.tile(input=my_tensor, dims=(2, 2))
# tensor([[3, 5, 1, 3, 5, 1],
# [3, 5, 1, 3, 5, 1]])
torch.tile(input=my_tensor, dims=(2, 3))
# tensor([[3, 5, 1, 3, 5, 1, 3, 5, 1],
# [3, 5, 1, 3, 5, 1, 3, 5, 1]])
etc.
torch.tile(input=my_tensor, dims=(3, 1))
# tensor([[3, 5, 1],
# [3, 5, 1],
# [3, 5, 1]])
etc.
torch.tile(input=my_tensor, dims=(1, 1, 1))
# tensor([[[3, 5, 1]]])
etc.
torch.tile(input=my_tensor, dims=(1, 0, 1))
# tensor([], size=(1, 0, 3), dtype=torch.int64)
my_tensor.tile(3, 2, 1)
# tensor([[[3, 5, 1], [3, 5, 1]],
# [[3, 5, 1], [3, 5, 1]],
# [[3, 5, 1], [3, 5, 1]]])
my_tensor = torch.tensor([3., 5., 1.])
torch.tile(input=my_tensor, dims=(2,))
# tensor([3., 5., 1., 3., 5., 1.])
my_tensor = torch.tensor([3.+0.j, 5.+0.j, 1.+0.j])
torch.tile(input=my_tensor, dims=(2,))
# tensor([3.+0.j, 5.+0.j, 1.+0.j, 3.+0.j, 5.+0.j, 1.+0.j])
my_tensor = torch.tensor([True, False, True])
torch.tile(input=my_tensor, dims=(2,))
# tensor([True, False, True, True, False, True])
my_tensor = torch.tensor([[3, 5, 1],
[6, 0, 5]])
torch.tile(input=my_tensor, dims=(1,))
# tensor([[3, 5, 1],
# [6, 0, 5]])
torch.tile(input=my_tensor, dims=(2,))
# tensor([[3, 5, 1, 3, 5, 1],
# [6, 0, 5, 6, 0, 5]])
torch.tile(input=my_tensor, dims=(3,))
# tensor([[3, 5, 1, 3, 5, 1, 3, 5, 1],
# [6, 0, 5, 6, 0, 5, 6, 0, 5]])
etc.
torch.tile(input=my_tensor, dims=(1, 1))
# tensor([[3, 5, 1],
# [6, 0, 5]])
torch.tile(input=my_tensor, dims=(1, 2))
# tensor([[3, 5, 1, 3, 5, 1],
# [6, 0, 5, 6, 0, 5]])
torch.tile(input=my_tensor, dims=(1, 3))
# tensor([[3, 5, 1, 3, 5, 1, 3, 5, 1],
# [6, 0, 5, 6, 0, 5, 6, 0, 5]])
etc.
torch.tile(input=my_tensor, dims=(2, 1))
# tensor([[3, 5, 1],
# [6, 0, 5],
# [3, 5, 1],
# [6, 0, 5]])
torch.tile(input=my_tensor, dims=(2, 2))
# tensor([[3, 5, 1, 3, 5, 1],
# [6, 0, 5, 6, 0, 5],
# [3, 5, 1, 3, 5, 1],
# [6, 0, 5, 6, 0, 5]])
torch.tile(input=my_tensor, dims=(2, 3))
# tensor([[3, 5, 1, 3, 5, 1, 3, 5, 1],
# [6, 0, 5, 6, 0, 5, 6, 0, 5],
# [3, 5, 1, 3, 5, 1, 3, 5, 1],
# [6, 0, 5, 6, 0, 5, 6, 0, 5]])
etc.
torch.tile(input=my_tensor, dims=(3, 1))
# tensor([[3, 5, 1],
# [6, 0, 5],
# [3, 5, 1],
# [6, 0, 5],
# [3, 5, 1],
# [6, 0, 5]])
etc.
torch.tile(input=my_tensor, dims=(1, 1, 1))
# tensor([[[3, 5, 1],
# [6, 0, 5]]])
etc.
This content originally appeared on DEV Community and was authored by Super Kai (Kazuya Ito)