Inspiration
Like pytest helps build Python programs, pytrain helps create differentiable software.
More and more deep learning programs today are complex architectures made up of smaller modular parts. They are easier to build, train, understand, visualize, debug and explain. If deep learning is to make the leap beyond off-the-shelf neural networks, then it will need to integrate better and more reliably with regular software.
Multi-task training is an important part of this, just like automated testing was for software engineering as a discipline.
What it does
PyTrain will collect all the tasks that define your program, and runs them automatically as part of training loops to help optimize a collection of modules. The tasks can also be used as tests that integrate into standard test frameworks.
How I built it
Python, PyTorch.
A previous prototype was used to create the generative model for https://photogeniq.com/ — a tool for photographers still in closed alpha.
Challenges I ran into
The major challenges are finding a suitable abstraction level, so the tasks remain simple and the training process is customizable. I'm releasing version 0.0.1 as part of this hackathon to get early feedback on the concept and implementation as it is now.
Accomplishments that I'm proud of
Unicode trains in the progress bars—they make me laugh every time.
What I learned
Differentiable programming is not ready for prime time yet... hopefully this will help ;-)
What's next for PyTrain
Over the next weeks, the functionality will be built up incrementally along with an open-source re-implementation of the technology behind Photogeniq.
Log in or sign up for Devpost to join the conversation.