- Read our FAQ.
- Check out python examples and Pipelines.
- Check out our Kanban board. You can work on one of the existing issues or create a new one.
- Start the conversation under the issue you picked. We will discuss the design and content of the pull request, and then you can start working on it.
- Fork the repository.
- Clone it locally.
- Create a branch with a name that speaks for itself.
- Set up the environment. You can install the library in dev mode via
pip install -e .
or build / pull docker image. - Implement the discussed functionality, docstrings, and tests for it.
- Run tests locally using commands from
Makefile
. - Push the code to your forked repository.
- Create a pull request to OpenMetricLearning.
- If you want to change
README.md
you should go todocs/readme
, change the desired section and then build readme viamake build_readme
. So, don't change the main readme file directly, otherwise tests will fail. - Don't forget to update the documentation if needed. Its source is located in
docs/source
. To inspect it locally, you should runmake html
(fromdocs
folder) and then opendocs/build/html/index.html
in your browser.
- Add the model's implementation under
oml/models
. - Implement
from_pretrained()
and add the corresponding transforms. - Add the model to
oml/registry
andoml/configs
. - Evaluate model on 4 benchmarks and add the results into ZOO table in the main Readme.
- Implement your changes in one of the pipelines (
extractor_training_pipeline
,extractor_validation_pipeline
or others). - Add a new test or modify an existing one under
tests/test_runs/test_pipelines
. - If adding a new test:
- Add config file:
tests/test_runs/test_pipelines/configs/train_or_validate_new_feature.yaml
- Add python script:
tests/test_runs/test_pipelines/train_or_validate_new_feature.py
- Add test:
tests/test_runs/test_pipelines/test_pipelines.py
- Add config file:
- If you want to add some new criterion, miner, model, optimizer, sampler, lr scheduler or transforms, don't forget to
add it to the corresponding registry (see
oml.registry
) and also add a config file (seeoml.configs
).