Pytorch Zero to GANS Assignment 1
5 Tensor Operations
Pytorch is a tensor operations library used mainly for deep learning. In this notebook I introduce five Tensor operations.
- torch.Tensor.contiguous
- torch.Tensor.expand
- torch.Tensor.fill_diagonal_
- torch.Tensor.index_add_
- torch.Tensor.index_fill_# Title Here
Subtitle Here
An short introduction about PyTorch and about the chosen functions.
- function 1
- function 2
- function 3
- function 4
- function 5
# Import torch and other required modules
import torch
Function 1 - torch.Tensor.contiguous
Each newly created tensor is contiguous, but if you transpose it, expand it etc. you get a non-contiguous Tensor, Which in some cases is problematic. The contiguous function creates a contiguous copy of the Tensor if it isn't contiguous already, otherwise it returns self.
# Example 1 - working
x = torch.Tensor([[1, 2], [3, 4.]])
y = torch.transpose(x,0 , 1)
y = y.contiguous()
y
tensor([[1., 3.],
[2., 4.]])
A basic use of contiguous. When y is created, its simply a different way to look at x. After using contiguous, a copy of y is created that looks just like y for a human but has a different representation in memory, specifically, just like if we would create a whole new Tensor with the data stored in y.