Metadata-Version: 2.1
Name: phobos
Version: 1.2.8
Summary: Training utility library and config manager for Granular Machine Vision research
Home-page: https://github.com/granularai/phobos
License: MIT
Author: Sagar Verma
Author-email: sagar@granular.ai
Requires-Python: >=3.7.0,<4.0.0
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: albumentations (>=1.0.3,<2.0.0)
Requires-Dist: cookiecutter (>=1.7.3,<2.0.0)
Requires-Dist: numpy (>=1.21.0,<2.0.0)
Requires-Dist: polyaxon (>=1.10.1,<2.0.0)
Requires-Dist: polyaxon-sdk (>=1.10.1,<2.0.0)
Requires-Dist: pytorch-lightning (>=1.3.8,<2.0.0)
Requires-Dist: scikit-learn (>=0.24.2,<0.25.0)
Requires-Dist: timm (==0.5.4)
Requires-Dist: torch (>=1.10.1,<2.0.0)
Requires-Dist: torchvision (>=0.11.2,<0.12.0)
Requires-Dist: webdataset (==0.1.62)
Requires-Dist: yacs (>=0.1.8,<0.2.0)
Project-URL: Repository, https://github.com/granularai/phobos
Description-Content-Type: text/x-rst

===================
Phobos
===================

A Utility Library that assists in Geospatial Machine Learning by: 

* supporting creation of a project with boilerplate code for model training
* exporting annotations from `Europa <https://europa.granular.ai>`_
* populating template project with configurable components for model
* fetching samples from dataset shards available at ``AIStore``
* orchestrating model training and validation
* deploying project to `Arche <https://arche.granular.ai>`_ for efficient training in a node cluster   

Flow
----
.. image:: docs/phobos.png
    :width: 1200

Features
--------

* Polyaxon auto-param capture
* Configuration enforcement and management for translation into Dione environment
* Precomposed loss functions and metrics
* Get annotations from Europa 


TODO
----

* ETL datasets via CLI on AIStore
* Multi Input and Multi Output models
* Static analysis code 
* Dataset abstraction 
* Standard dataset loaders 
* Pretrained models 


Build Details
-------------

* packages are managed using poetry
* packages poetry maintains pyproject.toml
* PRs and commits to `develop` branch trigger github actions


Tests
-----

>>> make install
>>> make test-light


A GPU machine is requried for test-heavy

>>> make install
>>> make test-heavy


Installation
------------

```pip install phobos```


Usage
-----

Get all the annotation tasks available in Europa 

```phobos get --all --email <email> --passwd <password>```

Download one particular annotation task from Europa 

```phobos get --task <task ID> --path <directory to save anntoations> --email <email> --passwd <password>```

Create a project boilerplate code 

```phobos init --project_name <project name> --project_description <project description>```

Run an experiment 

```phobos run```

Run associated tensorboard 

```phobos tensorboard --uuid <project id>```

License
-------
GPLv3

Documentation
-------------

View documentation `here <https://phobos.granular.ai/>`_

Image
-----
Use gcr.io/granular-ai/phobos:latest

