Metadata-Version: 2.1
Name: lfcnn
Version: 0.2
Summary: A TensorFlow framework for light field CNNs.
Home-page: https://gitlab.com/iiit-public/lfcnn
Author: Maximilian Schambach
Author-email: schambach@kit.edu
License: GNU General Public License v3 (GPLv3)
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 4 - Beta
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: tensorflow (>=2.2)
Requires-Dist: h5py (>=2.10)
Requires-Dist: numpy (>=1.18)
Requires-Dist: scipy (>=1.4)
Requires-Dist: imageio (>=2.3.0)

# lfcnn - A TensorFlow framework for light field CNNs
[![build status](https://gitlab.com/iiit-public/lfcnn/badges/master/pipeline.svg)](https://gitlab.com/iiit-public/lfcnn/commits/master)
[![coverage report](https://gitlab.com/iiit-public/lfcnn/badges/master/coverage.svg)](https://gitlab.com/iiit-public/lfcnn/commits/master)
[![PyPI](https://img.shields.io/pypi/v/lfcnn.svg)](https://pypi.org/project/lfcnn/#description)
[![PyPI](https://img.shields.io/pypi/pyversions/lfcnn.svg)](https://pypi.org/project/lfcnn/#description)
[![PyPI](https://img.shields.io/pypi/status/lfcnn.svg)](https://pypi.org/project/lfcnn/#description)


[![Image](https://gitlab.com/iiit-public/lfcnn/-/wikis/uploads/c8f13881b0f2cb18f0db3247c6f2cc66/lfcnn_logo_gitlab.png)](https://gitlab.com/iiit-public/lfcnn/)


## License and Usage

This software is licensed under the GNU GPLv3 license (see below).

If you use this software in your scientific research, please cite our paper:


    Not yet available. Please check back later.


## Installation

It is recommended to use Conda to setup a new environment with tensorflow and GPU support.
To install with GPU support, run

```
conda create -n lfcnn python=3.8 tensorflow-gpu=2.2 tensorflow numpy scipy imageio h5py cudnn cudatoolkit
conda activate lfcnn
```

Then, install the provided package using `pip`:

```
pip install lfcnn
```

### Optional dependencies
Optionally, for some of `lfcnn`'s features, install the following:

- `matplotlib` (via conda or pip)
- `sacred` (via pip)
- `pymongo` (via conda or pip)
- `mdbh` (via pip)


### Installation on Windows
LFCNN is mostly compatible with all TF versions TensorFlow >= 2.0, 
however there is a bug in tf.keras that causes OOMs with data generators 
(which LFCNN uses) and multithreading and -processing. 
Therefore, we specify `tensorflow >= 2.2` as a dependency, 
for which this bug has been [resolved](https://github.com/tensorflow/tensorflow/commit/e918c6e6fab5d0005fcde83d57e92b70343d3553).

However, as of June 2020, TF 2.2 is not released on Anaconda for Windows. 
So for Windows, it is necessary to install TF via pip. 
However, installation of the compatible cuDNN and CUDA should still be 
performed via conda for simplicity.
To setup the new environment with the correct CUDA and cuDNN versions, run

```
conda create -n lfcnn python=3.8 numpy scipy imageio h5py cudnn=7.6.5 cudatoolkit=10.1
conda activate lfcnn
pip install tensorflow==2.2 tensorflow-gpu==2.2
```
Furthermore, the [Visual C++ redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads)
has to be installed on Windows.

Finally, install LFCNN via pip as usual:

```
pip install lfcnn
```


### Testing

You can manually run the tests using `pytest`:

    $ pytest <path-to-lfcnn>/test/



### Uninstallation
Uninstall ``lfcnn`` using

    $ pip uninstall lfcnn


## Contribute
If you are interested in contributing to ``lfcnn``, feel free to create an issue or
fork the project and submit a merge request. As this project is still undergoing
restructuring and extension, help is always welcome!


### For Programmers

Please stick to the 
[PEP 8 Python coding styleguide](https://www.python.org/dev/peps/pep-0008/).

The docstring coding style of the reStructuredText follows the 
[googledoc style](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html).



## License

Copyright (C) 2018-2020  The Plenpy Authors

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.


