Intro

This week we start looking into Convolutional Neural Networks (ConvNets or CNN). We will work with Keras and/or ML5js. Example with Wekinators and tfjs can be provided during next week session.

Resources

Weekly task

In Class

Read the articles above in resources, and complete the 4 notebooks for week 04 in ba_218_comppx_h1801/samples/notebooks:

...
├── week04-05-introduction-to-convnets.ipynb
├── week04-06-using-convnets-with-small-datasets.ipynb
├── week04-07-using-a-pretrained-convnet.ipynb
└── week04-08-visualizing-what-convnets-learn.ipynb

Those notebooks are taken from the book Deep Learning with Python, (please refer to the link shared on Slack). You should be able to run most of the examples with your local instances of TF / Keras running on the CPU. At the meantime I will try to setup some machine on Paperspace so that you can use their GPU for training :stuck_out_tongue_winking_eye: I’ll share the link with you on Slack if / when this is done.

Convnets are a cornerstone of Deeplearning and you are going to learn a few very useful techniques this week. Namely: ‘data augmentation’ and ‘feature extraction’ for ‘transfer learning’ .

Assignment

For developers your assignment is to use a CNN to build a classifier of your choice (either trained from scratch or using a pre-trained model). You can follow the techniques detailed in the notebooks. You will find some examples of datasets in the section going further/tools on this page. For those of you who worked with the shape classifier with the toy NN it might be interesting to try to use CNN as a comparison (see the Kaggle dataset in tools).

Both designers and developers should start looking a bit more in details into their personal project (that we will start to work on after week 06) Which means:

  1. Make some research (models architecture, datasets, tutorials, blog posts, etc…), please share your finding on Slack if you think they could help some teammates.
  2. For designers you should start sketching some ideas either in the form of prototypes (high or low level), UI sketches, or even code experiment (P5, ML5).

By next week (week 05) you should:

  1. Have a solid understanding of Keras (developers)
  2. Be able to train / retrain your own CNN with Keras (developers)

Going further

CNN

Tools