Implementing Lesson 8 Fast AI 2018 in 2020
Contents
- Introduction
- Problems faced and the Fast AI Forum
- Some comparisons in results
- Is it worth practicing 2018 Course in 2020?
- Credits and links
Introduction
The lesson 8 of the 2018 Fast AI Cutting Edge Deep Learning is a continuation to the part 1 of the course Practical Deep Learning.
The course was released in 2018 and unlike the 2019 course(which i have attended as well), the 2018 version was more hands on versus the more theoretical 2019 version. Personally, after attending the 2019 course i felt that 2018 course is easier to understand and interesting but that is of course my personal view.
Lesson 8 was aimed at teaching single largest object detection in an image and it used the 2007 Pascal VOOC data set. Links to the data set and related JSON files are in the last section of the story.
As Fast AI receives constant updates and undergoes major changes each year, implementing the 2018 notebook in 2020 was a task but it was made easier by the notes made by Hiromi S and of course the video lecture of the course.
Problems Faced and the Fast AI Forum
As mentioned above, the Fast AI library is constantly updated to stay up to date with the current technologies and I have noticed that each update makes it more user friendly. But, due to the notebook being 2 years old, it was not compatible with the current version and it was clearly mentioned in the Fast AI repository.
There were many small issues like displaying images(show_img function) to some big issues like changed API calls.
And many other small issues like the learn.sched.plot has been replaced with learn.recorder.plot ,learn.fit has been replaced with learn.fit_one_cycle etc. But as mentioned before I had completed 2019 Part 1 and 2 before coming to this notebook thus I did not face much problem in this part of the implementation.
The 2 major issues were
- Applying TFMStype.COOD which would simply modify the coordinates of the bounding box according to the transformation applied to the image.
2. Creating a learner for bounding box : In the 2018 Notebook, they simply put together a custom head with a Resnet34. But again due to my knowledge of Fast AI Part 1 2019 I knew it was a regression problem just like the one in which center of the nose had to be found in the head_pose notebook and it could be solved using PointsItemList.
After dealing with this I came across some minor issues for which I turned to the forum and it was there that i found the solutions to some issues and also saved a ton of time to finally complete the notebook.
The Forum is a very nice place to be. We can ask any question and it would be answered by an alumni within hours. Also, there are several topics that are discussed over there, where we can answer someone’s queries or ask a question as to why someone used the particular code or even start a discussion on a new topic.
Some comparisons in results
As expected the image classification neural network did not have much difference due to the fact that same model is used but there is a very small difference which could be due to variety of reasons.
Here, are the results for the bounding box regression training
Here, are some output images
First by the 2018 Notebook
Now, by the 2020 Notebook
The output seems decent to me and I shall update next month with Lesson 9 Notebook.
Is it worth practicing 2018 Course in 2020?
Well, this is a subjective question. Before attending the 2019 MOOC I would have definitely said NO but then after attending the 2019 Part 2 course I felt it was not as much hands on and top down as the 2018 one but as mentioned above, implementing the 2018 code today is a big task while implementing a recent notebook is easier. Also, newer courses definitely have more details than the old one’s but it is not like, the old one’s are not challenging , knowledgeable or are totally outdated. Part 1 of both years are more or less the same and equally fun. I would recommend Part 1 2019 over Part 1 2018 any day. Also before going to Part 2 2018, it is recommended to at least watch 2019’s course if not implement it.