How to do fastai - Study plans & Learning strategies

This discussion is quite lively… so I am thinking that maybe some of you might be looking for mini projects to get your hands dirty with training…

More information in this post. tldr: I think the datasets by fastai are an underappreciated resource. Started to create a starter pack for imagewoof. Was thinking of keeping the repo private as I work on this but am thinking that maybe someone might find a use for it already, maybe as a refresher before part 2…

Anyhow - whether you use this code or not is immaterial, but do check out the datasets here. They are a super valuable learning resource!

9 Likes

@radek This is definitely as good exercise/mini-project. I had completely missed that something like this can also be undertaken. Will take up one dataset at a time and update my GitHub :slight_smile:

1 Like

I need a project first and then go through the lessons. I think my biggest learning has happened after struggling through Kaggle competitions.

  1. It forces me to work on something
  2. I can compare with others
  3. I really see what appears to work and what doesn’t. I have made several models with a bad validation set that look to perform really well, but are horrible)

Working with tabular data I have probably, looked through Rossmann and the Adult Salary set a dozen times, which has gotten me about 80% there. The last 20% is a struggle to get rid of bad habits (not creating a smaller subset while testing architecture, model, feature engineering) and items I don’t understand/ask on the forums (categorylist vs floatlist, custom metrics, embeddings)

What I hope to give back more this round are some other starter packs for kaggle, similar to planet. For others to work and experiment through.

What a time to be alive! :smiley:
Just a few hours from the First lecture of Part 2 and I thought I should share my thoughts again here.

I spent the last few weeks as planned:

I don’t know how but somehow I managed to pull together all of the things that I had planned to do. Maybe it’s because I kept my hopes on the lower end but that’s okay I think I will make sure not to wear myself out this time. During the last Part 2 runs, I would try to run too hard to keep up and then just fall flat on my face and give up on the lectures. I’m determined not to do the same this time.

  • Managed to complete 3 runs of fastai, 2 all thanks to the twimlai meetups and 1 because, I had free weekends
  • I think I’ve started to get there
  • So far I’ve kept up with the Lesson discussions from part 1 and I hope to catch up or keep up with part 2 discussions. Special points if I can keep up in real time, lesser points if I get scared and don’t keep up and come back later.
  • I’ve been doing a few souce code deep dives during meetups and presenting papers.
  • I’m still yet to go back to the mini-ideas and start re-factoring. Mostly because I’m still adding more ideas around it.

A few goals that I’ll settle on for now:

  • Watch the livestreams live, keep up with the discussions and not just nod to the nb cells but actually ensure that I understand them okay-okay for the first run, I do plan to come back to the lessons later so I just hope to have a better idea than just feel alienated.
  • I’ve promised to do a paper-a-week summary along with 1 ML hero interview each week, Luckily I teamed up with @lesscomfortable who has been doing a paper a day summary and it led me to writing 8 paper summaries in the past 6 days :smiley: I hope to stick to 1 paper a week after the course starts if not with a speed that is as intense speed as of now.
  • Presenting lesson ideas: I’ve enjoyed learning via presenting via blogging and I’ve really started to realise that by doing a mini-talk during the DS India meetups (hosted by @aakashns) or during the TWiMLAI meetups has really help me deepen my understanding. I’ve somehow managed to do ~30 hours (my goal for 2019 is 100 hours) of presentations and I want to keep doing 1 mini talk or presentation on the ideas that I learn in part 2 each week.
  • Capstone Project: I’m still yet to fall in love with an idea or a paper that I really want to implement. Again, I’m just a CS undergrad student so that makes me a boring student with neither coding expertise (which is ofcourse my fault) or a cool background. So I’m still waiting for my shower thought but I’ll keep on working on mini-ideas and really come back to refactoring them in the future.

Another idea I’ve realised that I’d really want to stick to is: ensuring that my setup and DL env is clean. I’ve done house cleaning today and updated both my machines to latest fastai and pytorch versions. Setup 2 env(s)- A bleeding edge one, everything installed from source and another for reliability (because I mess up, not because source installation is very hard) where I keep everything conda installed.

Again, We’re all learning to learn so I’ll be thankful for any suggestions/corrections to my approach.

Also for anyone who made it through my boring ideas, incase you’d want to tackle some compute heavy idea and would need some GeForce, please don’t hesitate to reach out to me :slight_smile:

3 Likes

Let’s hope that doesn’t get the norm, else the ML heros will not have time for ML… :wink:
More seriously, I like the interviews!

1 Like

I’ve had success so far with this converter. I’ve converted all the Part 1 lectures, and am in the process of converting the Intro to ML lectures. I’d be happy to convert all the old classes to podcast and host them somewhere if @jeremy is okay with us converting them to mp3. Of course I won’t do this for Part 2 until it is officially released. Let me know if this would be okay.

Sure feel free. BTW you can download just the audio with youtube-dl.

@MadeUpMasters i wanted to know if you are hosting these mp3 for the lectures that we can get access to?

Hey, sorry I slacked on this, they exceeded the filesize on github and I was waiting until I’d set up a personal website to host. If you know a good place to share them freely please let me know and I’ll upload them.

1 Like

No problem. What range of size are we talking?

1 Like

You can upload the files to drive / dropbox & share the links in github.

1 Like

Hey guys, sorry for any delay on this. I’ve gone the google drive + GitHub route. The Part 1 2019 audio is up. I’m going to add the intro to ML and Part 2 2018. I’ll add Part 2 2019 upon request (or accept PRs from others who do it).

So far having listened to a few of the lessons for Part 1 in audio only mode, I have to say I’m not a huge fan of listening podcast style. There are definitely certain parts that do really well as audio (general advice, talking about specifics like heuristics for tuning learning rates…etc) but for the most part it doesn’t seem like a really effective use of time. The argument from most people would be that you can do it while doing other stuff, but I personally prefer going really hard at learning for a fixed period daily and then letting it go to do stuff away from the computer and then come back refreshed. To each their own, so if this method helps you than the repo will be there!

Edit: Oops, forgot the link! Fastai Lesson Audio (mp3)

6 Likes

Something that has helped me with fastai has been to re implement each notebook, take it by the week instead of being in a rush to complete the course. I take fastai as a marathon and not a sprint and make sure that I finish and finish strong.
Write self notes and do research on things that are hard to understand and also spend a lot of time writing code and digging into fastai source code.

Now that part-2 is out, following this approach of doing one lesson per week or less but doing it really well is going to be my focus. Also doing homework and following the public mooc as though I am in class, really helps me. Fastai is overwhelming in terms of knowledge and there is so much to learn that if we hopped on from first lesson to another without spending time on a lecture first, it would be really hard to carry forward that knowledge.

2 Likes

To study the part 2 of 2019, is their a need for me to study part 2 of 2018. Please i need your response, in order to guide my way through. Thanks

Yes and no. It was built on an older version of the library, so some things may not port over well, but what Jeremy teaches there is still relevant today. Eventually we will get some more narrowed down courses (like the NLP one happening now, and a GAN one in the works) but for now it is an excellent course to go through to understand the advanced topics.

Thanks. Have studied part one. I can move on to this new part 2?

1 Like

Absolutely! Go on!

1 Like

Hello!
I know this is quite subjective to each one’s preferences, but have you seen better results taking notes in the computer or by hand and then passing them to the computer? If you are using the computer, do you use notebooks or google docs/evernote?

I’m one of these people that always carries a notebook (paper) in my pocket at all times and scribbles stuff in, but I think I never go back and read them or do anything with them (I really need to get a system ahaha), I’m afraid this will happen with my course notes.

1 Like

Update

Created a separate beginner focussed version of this in Part 1 2020 category here and also made it into a wiki. I do not have permission since only the admin can make the opening post as wiki .

@muellerzr - I think this topic would be super useful to who are new to Top Down approach & getting started with the course. Could we make the top post as wiki or create a beginner focused version of it?

Not sure if you are an admin though.

Draft

Pass 1

Most of us would be at this level.

  • Watch the lecture once for high-level ideas

    • Capture the high-level ideas & concepts (Big Picture)
    • Review the questionnaire provided and try attempting to answer based on your understanding (It’s okay if you cannot answer all.)
  • Engage with lesson material

    • Read and Run the cells in the notebook. Add comments to the cell and explain what the cell does in your own words. If you do not understand, add a TODO on it.
    • use doc(THING_I_WANT_TO_KNOW_MORE) eg: doc(untar_data), ?? untar_data
    • Create the notes and an outline [1]
  • Complete the HomeWork specific to Lesson (For eg Lesson 1)

    • read the chapter corresponding to the lesson

Pass 2 - Detailed Engagement

  • Re-run the notebook but re-write every line one by one
  • Execute each one and explain what the code cell is doing & why it is doing that in your own words.
  • Watch the lecture again for more detail
  • Try to complete the questionnaire this time if you cannot answer all the questions at the previous level
4 Likes