Metadata-Version: 2.1
Name: expa
Version: 0.2.0
Summary: Metric logging and analysis for ML experiments
Home-page: https://github.com/jurgisp/expa
Author: Jurgis Pasukonis
Author-email: jurgisp@gmail.com
License: Apache 2.0
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: requests
Provides-Extra: db
Requires-Dist: pandas; extra == "db"
Requires-Dist: asyncpg; extra == "db"
Provides-Extra: pubsub
Requires-Dist: msgpack; extra == "pubsub"
Requires-Dist: google-cloud-pubsub; extra == "pubsub"
Provides-Extra: api
Requires-Dist: absl-py; extra == "api"
Requires-Dist: fastapi; extra == "api"
Requires-Dist: uvicorn; extra == "api"
Requires-Dist: orjson; extra == "api"

# eXpa

Metric logging and analysis tool for ML experiments.

The components are:
- Scalable data store backed by PostgreSQL
- REST API for logging and retrieving data
- Python client library [expa](https://pypi.org/project/expa/) for sending metrics
- Powerful UI for metric visualization

**This is a pre-release work in progress, expect breaking changes!**

## Getting started

#### Start development server locally

```sh
git clone https://github.com/jurgisp/expa.git && cd expa
PORT=8000 docker-compose up
```

#### Use expa client to push metrics

```python
!pip install expa
import expa
logger = expa.Logger('experiment', 'run', api_url='http://localhost:8000/api')
logger.log_params({'param': 'value'})
for step in range(1, 101):
  logger.log({'loss': 1/step}, step)
```

#### Visualize metrics

Open [localhost:8000](http://localhost:8000/)

## Security

The API does not have any user authentication built-in. Be sure to add an auth layer if you are planning to deploy the service on publicly accessible network.

## Contributing

See [`CONTRIBUTING.md`](CONTRIBUTING.md) for details.

## License

Apache 2.0; see [`LICENSE`](LICENSE) for details.

## Disclaimer

This project is not an official Google project. It is not supported by Google and Google specifically disclaims all warranties as to its quality, merchantability, or fitness for a particular purpose.

This product is not intended or suitable for storing private data.
