We’re doing a rewrite of the fastai library, with the following goals:
- Support consistent API for classification, regression, localization, and generation, across all of: vision, NLP, tabular data, time series, and collaborative filtering
- Clear and complete documentation for both new and experienced users
- Well tested (both unit and integration tests)
- Better structured code
- Notebooks showing how and why the library is built as it is.
The repo is here:
If you’re interested in helping, feel free! I’ll try to keep this post up to date with what we’re looking for help with. At the moment (July 19, 2018), we’ve only just started, so you probably won’t be that comfortable getting involved unless you’re familiar with all of the following:
- Functional and OO programming in Python
- Using Pytorch and fastai
- fastai internals (or at least being comfortable self-studying to learn relevant bits)
- All the deep learning concepts from part 1 and most of part 2.
Also, development will at a pretty intense pace for a while, so it may be hard to get involved at the moment if you don’t have much time available. (In a couple of weeks there’s likely to be some testing and documentation tasks to do which will be more suitable for people with less deep learning experience and/or less time.)
There aren’t any design docs or anything yet - over time hopefully this forum will have useful material to allow new devs to get involved. In the meantime, you’ll need to ask questions here to get the info you need! Or if you’re in SF, you can join the SF study group in person (details here).
Note for new contributors
It’s can be tempting to jump in to a new project by questioning stylistic decisions that have been made, such as naming, formatting, and so forth. Especially so for python programmers coming to this project, which is unusual in following a number of conventions that are common in other programming communities, but not in Python. However, please don’t do this, for (amongst others) the following reasons:
- Contributing to Parkinson’s law of triviality has negative consequences for a project. Let’s focus on deep learning!
- It’s exhausting to repeat the same discussion over and over again, especially when it’s been well documented already
- You’re likely to get a warmer welcome from the community if you start out by contributing something that’s been requested on the forum, since you’ll be solving someone’s current problem
- If you start out by just telling us your point of view, rather than studying the background behind the decisions that have been made, you’re unlikely to be contributing anything new or useful
- I’ve been writing code for nearly 40 years now, across dozens of languages, and other folks involved have quite a bit of experience too - the approaches used are based on significant experience and research. Whilst there’s always room for improvement, it’s much more likely you’ll be making a positive contribution if you spend a few weeks studying and working within the current framework before suggesting wholesale changes.