How to actually learn from these videos?

I am not trying to be combative, but I don’t really see how to use these videos and notebooks to learn in any significant and lasting way. I don’t learn so well by simply re-running someone else’s code – that can help my understanding, but understanding immediately breaks down in the face of actually trying to do something myself. I wonder why there aren’t actually exercises and project assignments, rather than just “follow along with me, here is everything already explored for you”.

Does anyone have suggestions on how to lastingly and effectively learn from these videos and move into more advanced topics? It almost feels like these videos are just Jeremy teaching himself and bringing us along for the ride, where instead it should be us doing this stuff from scratch with some scaffolded guidance to get us there.

1 Like

I use these videos as a reference, when I am working on examples with datasets on Kaggle.

You could also join the slack stugy group, mentioned in the forums - https://join.slack.com/t/studygroup-nnz1782/shared_invite/zt-hmmcm0tw-bwNT21izqNLBKKS7XdQSqw

1 Like

Personally I think that with anything moving along at the speed Jeremy does in part 2, that you should be treating it as a uni lecture, ie: it’s a guide for what you need to go away and teach yourself at a slower speed. He does say a couple of times that he’s trying to cram in enough to keep you busy for months, so don’t expect to watch the videos and understand everything at the end.

For each part I’d go off on separate tangents. Once you’ve got a basic working library you can look at the object model from a software development point of view and see if you can make that better. Can you design a better callback/hook system? Can you come up with a better way of “doing data” than dataloaders/databunches etc. You may or may not end up coming to the same conclusions as Jeremy and Sylvain but you’ll learn some stuff along the way about other ways of doing things and why they made the choices they did and you’ll probably end up learning stuff which will be useful to you in the future. You may come up with some more efficient or easier for the end programmer.

Go off in directions which interest you. If you’re good with plotting and you want to go and implement some of the stuff they’re got in tensorboard, do it. If you you’ve seen something which looks sketchy, read some papers about better ways of doing it and try them.

I agree with what you say about running J’s code vs doing it yourself, but don’t just run his code. At the start of the course I was cutting and pasting his stuff across to mine bit by bit, then running it, kicking it, changing params, reading pytorch docs, articles about the maths etc, then moving on to the next function. If you don’t end up understanding this stuff all the way down then IMO there’s very little point to part 2.

3 Likes

I think the best suggestion I would have on this is to follow Jeremy’s advice on how to learn from the fast.ai courses. It’s pointed out many times that you shouldn’t only re-run the existing notebooks but instead, tweak the code and change parameters to understand how it behaves, re-write the code yourself, implement the code on new datasets, implement new functions, papers etc.

I know it is standard practice in many online courses to have coding exercises etc. However, I personally find it more useful to build something from scratch with fastai than to implement a line of code here or there in neat little exercises that don’t really help you understand the big picture.

That’s certainly not the case! You may not like the teaching style, but Jeremy puts great amounts of effort into building a course that teaches students (not himself) become proficient DL practitioners.

1 Like

I would recommend the 2020 book. I think the problem with the video is it makes sense and the the next bit makes sense but you forgot the previous bit. The book allows you to flip back a page and read it again. It is hard to flip back a video to the right place. I found Swift the hardest and when you google how do I do X in Swift the answers are difficult to find. I think there is an argument for typing in robot style so you make all the silly typing errors but then rather than cats and dogs try something of your own. I find there are lots of things I do not understand but I think you just have to do it and do it again. I remember the advice for the 2018 course was do not wander off to things you do not understand but like all good advice I ignored it and learnt how to program a GPU. When you saw Intel assembler did you go and learn it. Luckily I can write assembler so I did not but the trick is ignore the sidelines which can be hard.

1 Like