Please accept my apologies and refer me to another post if this issue has already been cleared (I imagine there is a good chance it has).
By no means do I mean to disrespect the library (overall, I’m overwhelmed with the number of positive things I’ve heard).
However, I also hear things like using your own architectures instead of predefined ones, using your own dataloaders, etc. is very difficult with fastai. Essentially, the argument is that you can very easily use fastai’s features(tricks, some even call it) but as soon as you want to develop something outside of the scope of the library, it’s extremely difficult because of the lack of documentation.
Perhaps this information is outdated?
I’m considering starting the (seemingly incredible) courses offered here and to that end, I’m interested in hearing your perspectives on the above.
So, if anything could rebut these comments on the library and thereby strengthen my confidence in going with fastai, I’d be very happy.
You should definitely take the fastai course. I was this close to not taking it, and I’m glad I ended up choosing it. I can confidently say, without taking any of the other deep learning courses out there, fastai is the better one to take, heh. Some things I wouldn’t have ended up doing if not for this course.
The course makes you start doing from the first lesson by creating a functioning image classifer, as opposed to most other courses which start you from scratch at the very bottom, only making you do something practical until the last 20% of the course.
The fastai library helps a lot in this regard because of its high level abstraction. I can’t speak on how the fastai library used to be, but the current version is built in a modular manner. Think of the fastai library as a bunch of boxes — you can toss your PyTorch DataLoaders or custom PyTorch classes into those boxes for extra functionality and decreased boilerplate. You can quite easily use your own custom PyTorch classes with fastai.
That said, I do find the fastai docs to be kinda meh, but the library itself good.
However, it’s not about learning the library, but rather the underlying concepts. You can always transfer your underlying concepts to another library and end up using it quite easily. Libraries are simply tools; concepts are what you need.
I’d highly recommend going for this course.
Essentially, the argument is that you can very easily use fastai’s features(tricks, some even call it) but as soon as you want to develop something outside of the scope of the library, it’s extremely difficult because of the lack of documentation.
I very much feel this way, the tutorials are excellent but the documentation I find very difficult to navigate. Additionally, if you don’t subscribe to the
import * approach, the heavy use of patching can cause methods to be straight up absent from classes which is difficult.
That being said, I still recommend the course and retake it myself each time it comes out. If the fastai framework itself doesn’t do what you want it to do you can take your learnings out of it and use them in another framework like lightning or ignite, or in pure pytorch, or apply it to another library like TF or JAX. Once you know the concepts it’s easy enough to transfer the skills to a new syntax
Well said, thanks a lot for that. It seems that the tradeoff still favors going for the course and absorbing as much knowledge from it as possible!
Along the way I also wrote https://walkwithfastai.com to help with that. While you may see there’s a new course, do know all the free content on there too has helped many many people get a better grasp on fastai