Metadata-Version: 2.1
Name: dlc2action
Version: 0.2b3
Summary: tba
Home-page: https://github.com/AlexEMG/DLC2action
Author: A. Mathis Lab
Author-email: alexander@deeplabcut.org
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.yml
License-File: NOTICE.yml

[![Generic badge](https://img.shields.io/badge/Contributions-Welcome-brightgreen.svg)](CONTRIBUTING.md)
<a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>

![](logos/title.png)

DLC2Action is an action segmentation package that makes running and tracking of machine learning experiments easy.

## Installation

### Via the Python Package Index

You can simply install DLC2Action by typing:

```
pip install "dlc2action==0.2b3"
```

### From Github

You can install DLC2Action for development by running this in your terminal.
```
git clone https://github.com/AlexEMG/DLC2Action
cd DLC2Action
conda create --name DLC2Action python=3.9
conda activate DLC2Action
python -m pip install .
```

## Features

The functionality of DLC2Action includes:
 - compiling and updating project-specific configuration files,
 - filling in configuration dictionaries automatically whenever possible,
 - saving training parameters and results,
 - running predictions and hyperparameter searches,
 - creating active learning files,
 - loading hyperparameter search results in experiments and dumping them into configuration files,
 - comparing new experiment parameters with the project history and loading pre-computed features (to save time) and previously
   created splits (to enforce consistency) when there is a match,
 - filtering and displaying training, prediction and hyperparameter search history,
 - plotting training curve comparisons

and more.

## A quick example

You can start a new project, run an experiment, visualize it and use the trained model to make a prediction
in a few lines of code.
```python
from dlc2action.project import Project

# create a new project
project = Project('project_name', data_type='data_type', annotation_type='annotation_type',
                  data_path='path/to/data/folder', annotation_path='path/to/annotation/folder')
# set important parameters, like the set labels you want to predict
project.update_parameters(...)
# run a training episode
project.run_episode('episode_1')
# plot the results
project.plot_episodes(['episode_1'], metrics=['recall'])
# use the model trained in episode_1 to make a prediction for new data
project.run_prediction('prediction_1', episode_names=['episode_1'], data_path='path/to/new_data/folder')
```

## How to get more information?

Check out the [examples](/examples) or [read the documentation](https://alexemg.github.io/DLC2action/html_docs/dlc2action.html) for a taste of what else you can do.


## Acknowledgments

DLC2Action is developed by members of the [A. Mathis Group at EPFL](https://www.mathislab.org/). We are grateful to many people for feedback, alpha-testing, suggestions and contributions, in particular to Liza Kozlova, Andy Bonnetto, Lucas Stoffl, Margaret Lane, Marouane Jaakik, Steffen Schneider and Mackenzie Mathis.

## License:

Note that the software is provided "as is", without warranty of any kind, express or implied. If you use the code or data, please cite us!

## Reference:

Stay tuned for our first publication -- any feedback on this beta release is welcome at this time. Thanks for using DLC2Action. Please reach out if you want to collaborate!
