A Machine Learning/Deep Learning model is nothing but applying an algorithm on a data set such that it learns and makes predictions. In order to train a model, one would need an abundant amount of data. The data set can correspond to a table in a database, a CSV file or a set of images, etc.
The time taken to train a model with a CSV data set could range from a few minutes to several hours. But the real struggle comes when you want to train a model with an image data set. For example, if you have a large data set – let’s say, 10 labels with hundreds of images each. It would take a minimum of 2 days to train on a CPU. Whereas the same data set takes 1 day to train on a GPU. If a TPU is used, it takes even less time. So, it is always advised to use a GPU/TPU for training models.
Now the question that arises is “what should people do when they don’t have access to a GPU?“
That’s where Jupyter Notebook comes into the picture.
Jupyter Notebook is an opensource web-based application in which code can be written and run interactively. It can be used for data pre-processing, visualization, statistical modeling and more.
All of the major cloud providers like Azure, AWS, IBM, etc., have incorporated notebooks in their clouds such that users can access their code from anywhere. The best part is, they provide GPU/TPU support for training the models.
- Notebooks in IBM Watson Studio uses Apache Spark clusters to provide the computation power needed to run the models. IBM is also providing GPU support for notebooks in place of Spark
- Google provides GPU and TPU support for free for building models through Google Colab
So, when you want to train a model, all you have to do is pick a cloud, choose the environment in the notebook and keep your model for training. You can even share these notebooks with your peers, so you and your collaborators can run the notebook in parallel.