Lesson 9 Discussion & Wiki (2019)

Not sure what you mean. Itā€™s easy to write a test for a Callback to make sure it did what it was supposed to do.

Shameless plugin: if youā€™re a bit rusty with decorators, Iā€™ve written a blog post on them :slight_smile:

11 Likes

This lecture is the most dense lecture of all fastai courses. I reckon it will take weeks to get a good grasp of all practices taught in the lesson. Pure gold!

8 Likes

And itā€™s only lesson 2 :wink:

3 Likes

In fastai do you write automated tests?

Good tests coverage is one of the running dev projects. Not exactly TDD though :smile:

2 Likes

Content until the next fast.ai course, remember? Jeremy stays true to his word :ā€™)

Can you do something similar to decorators in Swift? I didnā€™t think it was quite so dynamic, but I guess it does support currying so you could probably handroll something similarā€¦ Iā€™m not really sure.

Yes, every commit is automatically tested on our test suite. Or did you mean something else?

Lesson 2/5 of fastai in Python :smiley:

For sure. This one lecture would easily be an entire course in a CS subject.

4 Likes

Here I am starting to learn Swift, when thereā€™s so much Python left to learnā€¦

I wonder how one can keep all that complexity in their head. I feel overwhelmed. Any practical tips about how to mentally organize studying topics of overwhelming complexity?

5 Likes

Repetition. Pick a component of the lecture to focus on in each pass.

2 Likes

I would guess it depends on the computations required for the thing we want to calculate in real time.

I am going to try this with some small networks and try to assess the average log [frobenious] norm of the weights at different layers. Thereā€™s evidence that shows itā€™s correlated with test accuracy but without the need to use labels.

An unsupervised quality metric might be nice for generative models.

Can we know in advance the topics that are going to be covered in the next class so that we can brush up on those topics?

Every complex stuff is just the accumulation of simple bits. Break down the complex stuff into its parts, understand the parts well, and then reconstruct the complex stuff. Basically whatā€™s Jeremy has been doing, but you need to do it yourself to fully understand it. Follow fastaiā€™s advice: reimplement the notebooks yourself, and only look at the lessons notebook if you need it when you do so.

8 Likes
  1. Give it 2 days
  2. Print out the relevant notebooks
  3. Put pdb.set_trace() everywhere and step through the code
  4. Go back through this video and handwrite your notes on what is happening where and why in the print outs from step #2
2 Likes

I will just rewatch this a bunch of times. Brute force! :smiley:

3 Likes

It feels overly complex when you see it all in two hours. My advice would be to take is in smaller bits during the next week. Focus on the ones that feel the most important first, and if you donā€™t manage to get to the end of this lesson by next lesson, just note the parts you didnā€™t get to revisit somewhere for later, after the course.

This is one year of development distilled in five lessons, so itā€™s very dense.

10 Likes