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.

Built With

Share this project:

Updates