That’s French! You are in cahoots with the enemy
It is possible that 8 billion people know this but I did not. The other morning (UK) I joined lesson 2 and everybody was saying Hello on the chat but when I tried it said to create a channel but I could not. Eventually after a Google search I found my Google Account name was populated with my google email address and it has to be your name John Doe after which I could create a channel and hopefully next Tuesday I can say Good Morning to the global community.
I’ve been checking posts from previous iterations to have an idea about what worked and did not work for them. The whole post is worth reading, but I found some parts more relevant for me. Here is one:
- I find it interesting, what do you think about it? It looked like a worthwhile investment of time to me. The warm fuzzy feeling of helping FastAi is a plus.
This part is very tempting:
Our capability to practice more lies in accumulating little tidbits that improve our efficiency (learn debugging, etc), learning simple things about the tools we use (ctags, plotting with matplotlib), being able to focus better on what is important and producing our own util files for experimenting with a particular problem (a method for drawing a bounding box, a method for returning parameter count in a model, etc).](What I will focus on to succeed in this course - #48 by radek)
- Again, this seems relevant to me, and it is also possible to write posts about them etc. , what is your opinion?
Note: Please take this as a beginner post. My background is architecture, not CS or Mathematics.
Anything you do that involves digesting, transforming and then outputing information will benefit you. Documentation and blogging are good ways to force yourself to actively process information, and pay attention to detail.
For me, it the questions people ask the group, where I don’t know the answer to, that I like to hunt an answer. I find “just reading stuff” doesn’t stick as well as when I’m “hunting something specific”. Its a kin of goal-directed-learning, which helps my focus - with the added advantage of community feedback on alternative viewpoints.
Is it fair to assume that in the next lecture Jeremy will cover chapters 3-4 of the book?
Just trying to figure out the schedule beforehand
From this topic it looks like, the next lesson will contain
- Choosing best model from timm
- May be transformers. I am really excited about this.
oh wow, I had completely missed that
Also it will cover parts of ch4 of the book (SGD).
It’s great you found that post from @radek - he went on to write a whole book about his experiences, and I strongly recommend it:
Not sure if people are aware, but there is actually an audiobook of the FastAI book (the 2020 edition) available on Audible. It’s a bit of a weird experience for some of the later chapters to listen as the narrator tries to pronounce various code terms, but I’ve found it’s actually a pretty nice supplement to reading through the book. I generally find it takes a few times for material to sink in and encountering it via different media has helped me in the past.
I wasn’t aware! I can find it on Audible - maybe it’s not available in Australia…
Weird international licensing issue maybe. That’s annoying. I can confirm it’s available in USA and UK, though. The narration isn’t that bad actually!
Yes, great book, I’m reading it nowadays.
RE : Jeremys poll
With respect to all the beginners here, those who have done this course multiple times were beginners once, we were intimidated too, but there is no such thing as a nonsensical question.
Some of Jeremy’s comments from Lesson 3…
[52:57] My very strong opinion is that the vast majority of projects i see in industry
wait far too long before they train their first model. […] You might be surprised that none of the fancy stuff you’re thinking of doing is necessary because you already have a good enough accuracy for what you need beginners
[50:42] The number one mistake of beginners is that they jump to the higher performing architectures from the start of a new project [rather than using] resnet18/34 and asking "Do I need it faster if what I’m doing now could accept some tradeoffs.
…resonated with a few stories I read in the past that I think say something similar:
Random tidbit, came across this while doing some study: if you’re trying to data clean a vision model (lesson 1, 2), following along with the ch-2 production notebook: using
fns = get_image_files(path)
won’t reveal non-image files to your
verify_images function later. I haven’t noticed if this affects the learner (I think the dataloaders know to ignore non-images anyway), but if you make a function to convert images to JPEG this’ll cause errors. Instead using:
fns = get_files(path)
will expose everything in
This is useful because PIL will complain when your dataloader comes across non-JPEG images (RGBA instead of RGB) when you do your first training. A conversion function:
for fpath in subdir.iterdir(): if fpath.suffix != '.jpg': im = Image.open(fpath) im = im.convert('RGB') im.save(str(fpath.parent/fpath.stem)+'.jpg') fpath.unlink() // delete original file
will remove this warning later on.
Where Lesson 3 at [28:08] says “this is how we set the seed so that each time I run this I gotta get the same random numbers,” makes me remember this example of well commented code from xkcd…
Does our fastai output results are reproducible? I am observing that they are not. Any comments on this on how to produce reproducible results??
Where specifically are you finding that the training process is not reproducible?