Unflatten in PyTorch
Nov 06, 2024 pm 02:38 PMBuy Me a Coffee☕
*Memos:
- My post explains unflatten().
- My post explains flatten() and ravel().
- My post explains Flatten().
Unflatten() can add zero or more dimensions to the 1D or more D tensor of zero or more elements, getting the 1D or more D tensor of zero or more elements as shown below:
*Memos:
- The 1st argument for initialization is dim(Required-Type:int).
- The 2nd argument for initialization is unflattened_size(Required-Type:tuple or list of int).
- The 1st argument is input(Required-Type:tensor of int, float, complex or bool). *-1 infers and adjust the size.
- The difference between Unflatten() and unflatten() is:
- Unflatten() has unflattened_size argument which is identical to sizes argument of unflatten().
- Basically, Unflatten() is used to define a model while unflatten() is not used to define a model.
import torch from torch import nn unflatten = nn.Unflatten() unflatten # Unflatten(dim=0, unflattened_size=(6,)) unflatten.dim # 0 unflatten.unflattened_size # (6,) my_tensor = torch.tensor([7, 1, -8, 3, -6, 0]) unflatten = nn.Unflatten(dim=0, unflattened_size=(6,)) unflatten = nn.Unflatten(dim=0, unflattened_size=(-1,)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(6,)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(-1,)) unflatten(input=my_tensor) # tensor([7, 1, -8, 3, -6, 0]) unflatten = nn.Unflatten(dim=0, unflattened_size=(1, 6)) unflatten = nn.Unflatten(dim=0, unflattened_size=(-1, 6)) unflatten = nn.Unflatten(dim=0, unflattened_size=(1, -1)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(1, 6)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(-1, 6)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(1, -1)) unflatten(input=my_tensor) # tensor([[7, 1, -8, 3, -6, 0]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(2, 3)) unflatten = nn.Unflatten(dim=0, unflattened_size=(2, -1)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(2, 3)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(2, -1)) unflatten(input=my_tensor) # tensor([[7, 1, -8], [3, -6, 0]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(3, 2)) unflatten = nn.Unflatten(dim=0, unflattened_size=(3, -1)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(3, 2)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(3, -1)) unflatten(input=my_tensor) # tensor([[7, 1], [-8, 3], [-6, 0]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(6, 1)) unflatten = nn.Unflatten(dim=0, unflattened_size=(6, -1)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(6, 1)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(6, -1)) unflatten(input=my_tensor) # tensor([[7], [1], [-8], [3], [-6], [0]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(1, 2, 3)) unflatten = nn.Unflatten(dim=0, unflattened_size=(-1, 2, 3)) unflatten = nn.Unflatten(dim=0, unflattened_size=(1, -1, 3)) unflatten = nn.Unflatten(dim=0, unflattened_size=(1, 2, -1)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(1, 2, 3)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(-1, 2, 3)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(1, -1, 3)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(1, 2, -1)) unflatten(input=my_tensor) # tensor([[[7, 1, -8], [3, -6, 0]]]) etc my_tensor = torch.tensor([[7, 1, -8], [3, -6, 0]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(2,)) unflatten = nn.Unflatten(dim=0, unflattened_size=(-1,)) unflatten = nn.Unflatten(dim=1, unflattened_size=(3,)) unflatten = nn.Unflatten(dim=1, unflattened_size=(-1,)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(3,)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(-1,)) unflatten = nn.Unflatten(dim=-2, unflattened_size=(2,)) unflatten = nn.Unflatten(dim=-2, unflattened_size=(-1,)) unflatten(input=my_tensor) # tensor([[7, 1, -8], [3, -6, 0]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(1, 2)) unflatten = nn.Unflatten(dim=0, unflattened_size=(-1, 2)) unflatten = nn.Unflatten(dim=-2, unflattened_size=(1, 2)) unflatten = nn.Unflatten(dim=-2, unflattened_size=(-1, 2)) unflatten(input=my_tensor) # tensor([[[7, 1, -8], [3, -6, 0]]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(2, 1)) unflatten = nn.Unflatten(dim=0, unflattened_size=(2, -1)) unflatten = nn.Unflatten(dim=1, unflattened_size=(1, 3)) unflatten = nn.Unflatten(dim=1, unflattened_size=(-1, 3)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(1, 3)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(-1, 3)) unflatten = nn.Unflatten(dim=-2, unflattened_size=(2, 1)) unflatten = nn.Unflatten(dim=-2, unflattened_size=(2, -1)) unflatten(input=my_tensor) # tensor([[[7, 1, -8]], [[3, -6, 0]]]) unflatten = nn.Unflatten(dim=1, unflattened_size=(3, 1)) unflatten = nn.Unflatten(dim=1, unflattened_size=(3, -1)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(3, 1)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(3, -1)) unflatten(input=my_tensor) # tensor([[[7], [1], [-8]], [[3], [-6], [0]]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(1, 1, 2)) unflatten = nn.Unflatten(dim=0, unflattened_size=(-1, 1, 2)) unflatten = nn.Unflatten(dim=0, unflattened_size=(1, -1, 2)) unflatten = nn.Unflatten(dim=0, unflattened_size=(1, 1, -1)) unflatten = nn.Unflatten(dim=-2, unflattened_size=(1, 1, 2)) unflatten = nn.Unflatten(dim=-2, unflattened_size=(-1, 1, 2)) unflatten = nn.Unflatten(dim=-2, unflattened_size=(1, -1, 2)) unflatten = nn.Unflatten(dim=-2, unflattened_size=(1, 1, -1)) unflatten(input=my_tensor) # tensor([[[[7, 1, -8], [3, -6, 0]]]]) unflatten = nn.Unflatten(dim=1, unflattened_size=(1, 1, 3)) unflatten = nn.Unflatten(dim=1, unflattened_size=(-1, 1, 3)) unflatten = nn.Unflatten(dim=1, unflattened_size=(1, -1, 3)) unflatten = nn.Unflatten(dim=1, unflattened_size=(1, 1, -1)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(1, 1, 3)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(-1, 1, 3)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(1, -1, 3)) unflatten = nn.Unflatten(dim=-1, unflattened_size=(1, 1, -1)) unflatten(input=my_tensor) # tensor([[[[7, 1, -8]]], [[[3, -6, 0]]]]) my_tensor = torch.tensor([[7., 1., -8.], [3., -6., 0.]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(2,)) unflatten(input=my_tensor) # tensor([[7., 1., -8.], [3., -6., 0.]]) my_tensor = torch.tensor([[7.+0.j, 1.+0.j, -8.+0.j], [3.+0.j, -6.+0.j, 0.+0.j]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(2,)) unflatten(input=my_tensor) # tensor([[7.+0.j, 1.+0.j, -8.+0.j], # [3.+0.j, -6.+0.j, 0.+0.j]]) my_tensor = torch.tensor([[True, False, True], [False, True, False]]) unflatten = nn.Unflatten(dim=0, unflattened_size=(2,)) unflatten(input=my_tensor) # tensor([[True, False, True], [False, True, False]])
The above is the detailed content of Unflatten in PyTorch. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to Use Python to Find the Zipf Distribution of a Text File

How Do I Use Beautiful Soup to Parse HTML?

How to Perform Deep Learning with TensorFlow or PyTorch?

Introduction to Parallel and Concurrent Programming in Python

Serialization and Deserialization of Python Objects: Part 1

How to Implement Your Own Data Structure in Python

Mathematical Modules in Python: Statistics
