This seems to be what people agree on. Up until Sunday everyone will just be mostly brushing up on how things work in FastAI V2 if they don’t know it already (which is very true in my case). Also, we’ll be trying and writing something about loading the PETs dataset in different ways on our own. We’ll then probably write a blog about it if we wish to, but I guess everyone writing about the same thing will prove to be redundant. So I’m guessing we’ll meet up on a Zoom call and discuss the things we learnt. That call will probably decide what happens after that.
I’m probably not going to be able to meaningfully contribute on Sunday, I’ve got a CVPR competition track deadline on the 23rd; But others probably will.
Sure! I posted it in a different thread but it’ll get more traction here (and be centralized) Apparently I made a mistake and didn’t set up my recording software to pick up other people (so sorry!!!) so it’s just me answering questions, sorry if it gets confusing at all!
I made a seperate thread discussion for the one-off topics so it’s on topic with the study groups (as it wasn’t exactly exploring the datablock there, we went all over the place). I posted it here (and if anyone else has unrelated discussions that don’t fit well in any group)
Ah! Yeah, makes sense! I still am a little fuzzy with the semantics of mid-level and thought your walkthrough was definitely a peek into the hood of the library and thought of adding it here!
I plan on something much deeper if I want to go into it I may write my blog and then do a video with my blog as well. I’m enjoying doing the videos (as with WWF2 etc) so it’s something I’ll possibly try (while I still have time on my hands and my voice is okay!)
Hi All, This is a great initiative. I am late to the party. I just went through the top post and seen the links to the recorded videos until now. Will go through them. Is there a time schedule for the study group meetings?
Was doing a backtrace of ImageDataLoaders class for vision and and in the from_name_func method came across f = using_attr(label_func, ‘name’) which is then passed on to the from_path_func method as the label_func.
Could someone help me in understanding whats happening in that line: f = using_attr(label_func, ‘name’)?
The doc says it’s used to "Change function f to operate on attr"
and the docstring says the function returns “partial(_using_attr, f, attr)”…
I’m not an expert on this topic, from what I understand f = using_attr(label_func, 'name') creates a function f which does nothing but calls the attribute .name of it’s inputs. i.e Basically it takes the label_func which returns a list of paths, modifies it to call .name on every path in that list and return it. This new modified function is assigned as f, leaving the old function intact.
So label_func is applied on the .name of every path by creating a partial function of ‘_using_attr’ by passing in label_func and ‘name’ as the attribute which returns boolean values of whether the path is a cat or a dog. Which is then passed on to get_y which then sets the labels? I got that flow but couldn’t quite understand what _get_attr does, still kinda iffy on that!
From what I can gather f(file_name) is the same a label_func(file_name.name), so that’s what is happening I guess, creating a function that gets the name attribute of the file path and labe_func is applied to it.
Yes, in simpler words us using_attr(label_func,“name”) simply calls label_func but instead of passing its original input, it calls it with each of [inputs[0].name,inputs[1].name …]