Contributing
Check out the projects page for information on the active projects. Before starting work on a PR please comment on the relevant issue or create a new one. Once you begin work link the PR to the proper issue. For information on documentation contributions please go to our documents contribution page.
We have created a series of Live Coding Sessions on YouTube that can help give you an idea of how to contribute to projects.
Contributions Accepted
New time series models
New time series loss functions
Bug fixes
Meta data embedding models.
Documentation updates and fixes
Increasing test coverage
Benchmarking models on new datasets
Code Style
We use Flake8 and mypy. Currently, we are a PyTorch only repository in terms of model frameworks.
Unit tests
All functions and newly added code require unit tests. Existing unit tests must pass.
Peer review
All PRs require at least one approving review. Generally this review should be either from @Isaac Godfried @kriti mahajan or another core contributor. Please feel free to request to a review.
Getting setup locally
To get setup local you can install our repository in development mode from the master branch (or whatever branch you are using). To do this first clone the repository. Then run:
cd flow-forecast
python setup.py develop
Adding models
Models generally require four things:
Creating the model as a PyTorch module.
Adding the new model to the dict by importing and mapping it to class.
Adding an example model JSON config file in the tests directory.
Adding a unit test
Adding an end-to-end integration test
Complicating factors involve:
Models that take parameters other than X and metadata in
forward_params
.Models that return a tensor not in the shape (batch_size, forecast_length, n_targets)
Please plan with @Isaac Godfried before undertaking these more complicated models.
Adding Loss Functions/Optimizers
Loss functions generally follow the same procedure as new models.
Create the loss function
Add the loss function