PyTorch is a popular open-source machine learning library built on top of the Torch library. It is prominently used for deep learning. PyTorch serves primarily two purposes as a machine learning framework. First, it provides an interface to perform NumPy-like tensor operations using GPUs and CPUs, and second, the ability to set up machine learning algorithms that require iterative optimization (including deep learning).
This competency area includes the basics of linear algebra, gradients and autograd, usage of GPUs, tensor operations on GPU, dynamic computational graphs, and implementation of linear regression using basic operations.
- Linear Algebra - A good understanding of concepts such as vectors, matrices, tensors, matrix multiplication, etc.
- Gradients and AutoGrad - A theoretical understanding of gradients and how they are used to update parameters in machine learning models. Practical usage of torch, autograd and its features to update such parameters.
- Using GPUs - Usage of torch.device and .cuda() to leverage GPUs using PyTorch.
- Tensor Operations on GPU - Ability to create and manipulate tensors using PyTorch such as reshaping, multiplying, sum across different axes, transformations, etc. Ability to perform tasks such as converting an RGB image to black and white.
- Dynamic Computational Graphs - A theoretical understanding of computational graphs and the ability to visualize simple programs such as the addition of two numbers as computational graphs. An understanding of the difference between dynamic and static computational graphs.
- Linear Regression - Implementing linear regression with basic operations described in the competencies above.