1. What is PyTorch?
Answer: PyTorch is an open-source machine learning library for Python that provides tensor computation with strong GPU acceleration and deep neural networks built on a tape-based autograd system.
2. How is PyTorch different from TensorFlow?
Answer: PyTorch is a dynamic computational graph framework while TensorFlow is a static computational graph framework. In PyTorch, you can modify the computation graph on-the-fly, which makes it easier to debug and iterate. TensorFlow is optimized for production usage.
3. What are Tensors in PyTorch?
Answer: Tensors are the primary data structure in PyTorch that represent arrays of numbers. They are similar to NumPy arrays but can be run on GPUs for faster computation.
4. What is Autograd in PyTorch?
Answer: Autograd is PyTorch’s automatic differentiation engine that provides automatic differentiation for all operations on Tensors. It enables automatic computation of gradients for any differentiable function.
5. What is a Module in PyTorch?
Answer: A Module in PyTorch is a container that encapsulates one or more layers, parameters, and operations, and provides a high-level API for building and training neural networks.
6. What is the difference between nn.Module and nn.Sequential?
Answer: nn.Module is a general-purpose container for neural network modules, while nn.Sequential is a specific type of nn.Module that is used to create a linear stack of modules.
7. What is a DataLoader in PyTorch?
Answer: A DataLoader in PyTorch is a utility that provides an easy-to-use interface for iterating over a dataset. It handles batching, shuffling, and multiprocessing for you.
8. What is a Loss function in PyTorch?
Answer: A Loss function in PyTorch is a function that measures the difference between the predicted output and the ground truth. It is used to optimize the parameters of a neural network.
9. What is a Gradient in PyTorch?
Answer: A Gradient in PyTorch is the vector of partial derivatives of a function with respect to its input variables. It is used to optimize the parameters of a neural network using backpropagation.
10. What is CUDA in PyTorch?
Answer: CUDA is a parallel computing platform and programming model developed by NVIDIA that enables the use of GPUs for general-purpose computing. PyTorch supports CUDA for GPU acceleration.
11. What is backpropagation in PyTorch?
Ans: Backpropagation is the process of computing gradients of the loss function with respect to the parameters of the neural network. It is used to optimize the network during training.
12. What is a PyTorch optimizer?
Ans: A PyTorch optimizer is used to update the parameters of the neural network during training. It uses the gradients computed during backpropagation to update the weights.
13. What is the PyTorch CUDA library?
Ans: The CUDA library is a PyTorch library that allows computations to be performed on NVIDIA GPUs. It enables PyTorch to perform computations faster than on a CPU.
14. What is the difference between PyTorch and TensorFlow?
Ans: PyTorch is more dynamic and allows for easier debugging, while TensorFlow is more static and provides better scalability.
15. What is the PyTorch torch.autograd.Function class?
Ans: The torch.autograd.Function class is a PyTorch class that allows the creation of custom autograd functions. It enables the implementation of custom layers and loss functions.
16. What is the PyTorch Dataset class?
Ans: The Dataset class is a PyTorch class used to represent a dataset. It provides an interface to load and preprocess data.
17. What is the PyTorch DataLoader class?
Ans: The DataLoader class is a PyTorch class used to load data from a dataset in batches. It provides an efficient way to train neural networks with large datasets.
18. What is the PyTorch nn.ModuleList?
Ans: The nn.ModuleList is a PyTorch class used to store a list of nn.Modules. It enables the creation of complex neural network architectures.
19. What is the PyTorch nn.Sequential class?
Ans: The nn.Sequential class is a PyTorch class used to create a sequence of nn.Modules. It enables the creation of simple neural network architectures.
20. What is the difference between PyTorch and Keras?
Ans: PyTorch is more low-level and provides greater flexibility, while Keras is more high-level and provides ease of use for building neural networks.
21) What is the difference between Conv1d, Conv2d, and Conv3d?
There is no big difference between the three of them. The Conv1d and Conv2D is used to apply 1D and 2D convolution. The Conv3D is used to apply 3D convolution over an input signal composed of several input planes.
22) What do you understand from the word Backpropagation?
“Backpropagation” is a set of algorithm which is used to calculate the gradient of the error function. This algorithm can be written as a function of the neural network. These algorithms are a set of methods which are used to efficiently train artificial neural networks following a gradient descent approach which exploits the chain rule.
23) What is Convolutional Neural Network?
Convolutional Neural Network is the category to do image classification and image recognition in neural networks. Face recognition, scene labeling, objects detections, etc., are the areas where convolutional neural networks are widely used. The CNN takes an image as input, which is classified and process under a certain category such as dog, cat, lion, tiger, etc.
24) What is the difference between DNN and CNN?
The deep neural network is a kind of neural network with many layers. “Deep” means that the neural network has a lot of layers which looks deep stuck of layers in the network. The convolutional neural network is another kind of deep neural network. The Convolutional Neural Network has a convolution layer, which is used filters to convolve an area in input data to a smaller area, detecting important or specific part within the area. The convolution can be used on the image as well as text.
25) What are the advantages of PyTorch?
There are the following advantages of Pytorch:
- PyTorch is very easy to debug.
- It is a dynamic approach to graph computation.
- It is a very fast deep learning training than TensorFlow.
- It increased developer productivity.
- It is very easy to learn and simpler to code.