Metadata-Version: 2.1
Name: lfcnn
Version: 0.1.1
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/)




## 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
```

