Training Deep Neural Networks on a GPU with PyTorch
This post is the fourth in a series of tutorials on building deep learning models with PyTorch, an open source neural networks library. Check out the full series:
- PyTorch Basics: Tensors & Gradients
- Linear Regression & Gradient Descent
- Classification using Logistic Regression
- Feedforward Neural Networks & Training on GPUs (this post)
- Coming soon.. (CNNs, RNNs, transfer learning, GANs etc.)
In the previous tutorial, we trained a logistic regression model to identify handwritten digits from the MNIST dataset with an accuracy of around 86%.
However, we also noticed that it’s quite difficult to improve the accuracy beyond 87%, due to the limited power of the model. In this post, we’ll try to improve upon it using a feedforward neural network. Many parts of this tutorial are inspired from FastAI development notebooks by Jeremy Howard.
If you want to follow along and run the code as you read, a fully reproducible Jupyter notebook for this tutorial can be found here on Jovian:
aakashns/04-feedforward-nn - Jovian
Share Juptyer notebooks instantly. Jovian makes Jupyter notebooks shareable, commentable and reproducible.
You can clone this notebook, install the required dependencies using conda, and start Jupyter by running the following commands on the terminal:
pip install jovian --upgrade # Install the jovian library
jovian clone fdaae0bf32cf4917a931ac415a5c31b0 # Download notebook
cd 04-feedforward-nn # Enter the created directory
jovian install # Install the dependencies
conda activate 04-feedfoward-nn # Activate virtual env
jupyter notebook # Start Jupyter
On older versions of conda, you might need to run
source activate 04-feedforward-nn to activate the virtual environment. For a more detailed explanation of the above steps, check out the system setup section in the first notebook.