Metadata-Version: 2.1
Name: chia
Version: 2.2.0
Summary: Concept Hierarchies for Incremental and Active Learning
Home-page: https://github.com/cvjena/chia
Author: Clemens-Alexander Brust
Author-email: clemens-alexander.brust@uni-jena.de
License: UNKNOWN
Platform: UNKNOWN
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: GPU
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: python-configuration (==0.7.1)
Requires-Dist: nltk (~=3.5)
Requires-Dist: imageio (~=2.6)
Requires-Dist: pillow (~=8.0)
Requires-Dist: gputil (~=1.4.0)
Requires-Dist: networkx (~=2.4)
Requires-Dist: numpy (~=1.19.2)
Requires-Dist: tensorflow-addons (==0.12.1)
Requires-Dist: tensorflow (~=2.4.0)

# CHIA: Concept Hierarchies for Incremental and Active Learning
![PyPI](https://img.shields.io/pypi/v/chia)
![PyPI - License](https://img.shields.io/pypi/l/chia)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/chia)
![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/cvjena/chia)
![codecov](https://codecov.io/gh/cvjena/chia/branch/main/graph/badge.svg)

CHIA is a collection of methods and helper functions centered around hierarchical classification in a lifelong learning environment.
It forms the basis for some of the experiments and tools developed at [Computer Vision Group Jena](http://www.inf-cv.uni-jena.de/).

## Methods
CHIA implements:
 * **One-Hot Classifier**
 * **Probabilistic Hierarchical Classifier** Brust, C. A., & Denzler, J. (2019, November). *Integrating domain knowledge: using hierarchies to improve deep classifiers*. In Asian Conference on Pattern Recognition (pp. 3-16). Springer, Cham.
 * **Semantic Label Sharing** Fergus, R., Bernal, H., Weiss, Y., & Torralba, A. (2010, September). *Semantic label sharing for learning with many categories*. In European Conference on Computer Vision (pp. 762-775). Springer, Berlin, Heidelberg.

## Datasets
The following datasets are integrated into CHIA:
 * CORe50
 * CUB200-2011
 * (i)CIFAR-100
 * ImageNet ILSVRC2012
 * NABirds

## Requirements
CHIA depends on:
* python-configuration == 0.7.1
* nltk ~= 3.5
* imageio ~= 2.6
* pillow ~= 7.1.0
* gputil ~= 1.4.0
* networkx ~= 2.4
* numpy ~= 1.18.5
* tensorflow-addons == 0.11.1
* tensorflow == 2.3.0

Optional dependencies:

* tables ~= 3.6.1
* pandas ~= 1.0.4
* sacred ~= 0.8.1
* pyqt5 ~= 5.15.0
* scikit-image ~= 0.17.2
* scikit-learn ~= 0.23.1
* scipy == 1.4.1
* matplotlib ~= 3.2.1

## Installation
To install, simply run:
```bash
pip install chia
```
or clone this repository, and run:
```bash
pip install -U pip setuptools
python setup.py develop
```

We also include the shell script `quick-venv.sh`, which creates a virtual environment and install CHIA for you.

## Getting Started
To run the [example experiment](examples/experiment.py) which makes sure that everything works, use the following command:
```bash
python examples/experiment.py examples/configuration.json
```
After a few minutes, the last lines of output should look like this:
```text
[DEBUG] [ExceptionShroud]: Leaving exception shroud without exception
[SHUTDOWN] [Experiment] Successful: True
```

## Citation
If you use CHIA for your research, kindly cite:
> Brust, C. A., & Denzler, J. (2019, November). Integrating domain knowledge: using hierarchies to improve deep classifiers. In Asian Conference on Pattern Recognition (pp. 3-16). Springer, Cham.

You can refer to the following BibTeX:
```bibtex
@inproceedings{Brust2019IDK,
author = {Clemens-Alexander Brust and Joachim Denzler},
booktitle = {Asian Conference on Pattern Recognition (ACPR)},
title = {Integrating Domain Knowledge: Using Hierarchies to Improve Deep Classifiers},
year = {2019},
}
```

