Questionnaire
- What is the “head” of a neural net?
- What is the “body” of a neural net?
- What is “cutting” a neural net? Why do we need to do this for transfer learning?
- What is
model_meta
? Try printing it to see what’s inside. - Read the source code for
create_head
and make sure you understand what each line does. - Look at the output of
create_head
and make sure you understand why each layer is there, and how thecreate_head
source created it. - Figure out how to change the dropout, layer size, and number of layers created by
cnn_learner
, and see if you can find values that result in better accuracy from the pet recognizer. - What does
AdaptiveConcatPool2d
do? - What is “nearest neighbor interpolation”? How can it be used to upsample convolutional activations?
- What is a “transposed convolution”? What is another name for it?
- Create a conv layer with
transpose=True
and apply it to an image. Check the output shape. - Draw the U-Net architecture.
- What is “BPTT for Text Classification” (BPT3C)?
- How do we handle different length sequences in BPT3C?
- Try to run each line of
TabularModel.forward
separately, one line per cell, in a notebook, and look at the input and output shapes at each step. - How is
self.layers
defined inTabularModel
? - What are the five steps for preventing over-fitting?
- Why don’t we reduce architecture complexity before trying other approaches to preventing overfitting?
Further Research
- Write your own custom head and try training the pet recognizer with it. See if you can get a better result than fastai’s default.
- Try switching between
AdaptiveConcatPool2d
andAdaptiveAvgPool2d
in a CNN head and see what difference it makes. - Write your own custom splitter to create a separate parameter group for every ResNet block, and a separate group for the stem. Try training with it, and see if it improves the pet recognizer.
- Read the online chapter about generative image models, and create your own colorizer, super-resolution model, or style transfer model.
- Create a custom head using nearest neighbor interpolation and use it to do segmentation on CamVid.
In [ ]: