Learn practical skills, build real-world projects, and advance your career

Assignment Instructions (delete this cell before submission)

The objective of this assignment is to develop a solid understanding of PyTorch tensors. In this assignment you will:

  1. Pick 5 interesting functions related to PyTorch tensors by reading the documentation,

  2. Edit this starter template notebook to illustrate their usage and publish your notebook to Jovian using jovian.commit. Make sure to add proper explanations too, not just code.

  3. Submit the link to your published notebook on Jovian here: https://jovian.ai/learn/deep-learning-with-pytorch-zero-to-gans/assignment/assignment-1-all-about-torch-tensor .

  4. (Optional) Write a blog post on Medium to accompany and showcase your Jupyter notebook. Embed cells from your notebook wherever necessary.

  5. (Optional) Share your work with the community and exchange feedback with other participants

The recommended way to run this notebook is to click the "Run" button at the top of this page, and select "Run on Colab". Run jovian.commit regularly to save your progress.

Try to give your notebook an interesting title e.g. "All about PyTorch tensor operations", "5 PyTorch functions you didn't know you needed", "A beginner's guide to Autograd in PyToch", "Interesting ways to create PyTorch tensors", "Trigonometic functions in PyTorch", "How to use PyTorch tensors for Linear Algebra" etc.

IMPORTANT NOTE: Make sure to submit a Jovian notebook link e.g. https://jovian.ai/aakashns/01-tensor-operations . Colab links will not be accepted.

Remove this cell containing instructions before making a submission or sharing your notebook, to make it more presentable.

Five Most Underrated PyTorch Functions

PyTorch is a Python open source machine learning framework created by Facebook, which mainly relies on tensors to make computational calculations. This unique data structure facilitates computation with n-Dimensional Arrays and furthermore, creating deep learning applications.

In this article, we will explore 5 of the most underrated methods in PyTorch to work with Tensors.

  • torch.chunk()

Before we begin, let's install and import PyTorch

# Uncomment and run the appropriate command for your operating system, if required

# Linux / Binder
# !pip install numpy torch==1.7.0+cpu torchvision==0.8.1+cpu torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

# Windows
# !pip install numpy torch==1.7.0+cpu torchvision==0.8.1+cpu torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

# MacOS
# !pip install numpy torch torchvision torchaudio
# Import torch and other required modules
import torch

Function 1 - torch.chunk(input, chunks, dim=0) -> Tuple of Tensors

This method splits up the ¨input¨ tensor into the specified ¨chunks¨ variable in the given dimension ¨dim¨. All chunks will have the same shape, despite what is mentioned in the documentation - Last chunk will be smaller if the tensor size along the given dimension dim is not divisible by chunks-.

So, if it is not possible to divide the tensor into ¨chunks¨ equally shaped tensors, it wont return the specified number of chunks but the closest number of chunks from below. We will see this behavior.

Important The tensors returned are actually views of the original tensor, which means that any change in the chunks will reflect in the original tensor.