Kaggle kernels as a good option to run experiments?

something that i recently discovered and maybe useful to others.

kaggle kernels is a free jupyter notebook style (also can be script style) environment to run your code. currently it supports up to 9 hours active session time and GPU (nvidia tesla p100 16GB memory)

what’s interesting is it’s version control system. you can commit a version of your notebook and it will save input data, code, execute code and save output data with that version. the commit can take long time with big dataset etc. however the commit process is run on different VM so you can go back to your code and continue working on it. Also you can for example change hyperparameters and start another commit. So for example if one complete code run takes 8 hours, you can start 3 commits at about the same time and after 8 hours you will have results in three different versions, all stored with input data, code and output data. you can also diff versions with gui.

i didn’t test the limits like how many kernels can be run (commit) at once from one account… but it worked great so far up to 3 kernels committing at the same time with different hyperparameters.

limitation is of course, 9 hour run time, no choice of gpu (just the p100), when the notebook commits you can’t see the progress or for example the error after each iteration, and some more i didn’t encounter yet i guess :wink:

would like to hear your comments if you use it for such hyperparameter tuning and how your workflow look like?