Deep Learning for Simple Folk. Built on Keras
Project description
# conx
## Deep Learning for Simple Folk
Built in Python 3 on Keras 2.
[![CircleCI](https://circleci.com/gh/Calysto/conx/tree/master.svg?style=svg)](https://circleci.com/gh/Calysto/conx/tree/master) [![codecov](https://codecov.io/gh/Calysto/conx/branch/master/graph/badge.svg)](https://codecov.io/gh/Calysto/conx) [![Documentation Status](https://readthedocs.org/projects/conx/badge/?version=latest)](http://conx.readthedocs.io/en/latest/?badge=latest) [![PyPI version](https://badge.fury.io/py/conx.svg)](https://badge.fury.io/py/conx)
Read the documentation at [conx.readthedocs.io](http://conx.readthedocs.io/)
Ask questions on the mailing list: [conx-users](https://groups.google.com/forum/#!forum/conx-users)
Implements Deep Learning neural network algorithms using a simple interface with easy visualizations and useful analytical. Built on top of Keras, which can use either [TensorFlow](https://www.tensorflow.org/), [Theano](http://www.deeplearning.net/software/theano/), or [CNTK](https://www.cntk.ai/pythondocs/).
The network is specified to the constructor by providing sizes. For example, Network("XOR", 2, 5, 1) specifies a network named "XOR" with a 2-node input layer, 5-unit hidden layer, and a 1-unit output layer.
## Example
Computing XOR via a target function:
```python
from conx import Network, SGD
dataset = [[[0, 0], [0]],
[[0, 1], [1]],
[[1, 0], [1]],
[[1, 1], [0]]]
net = Network("XOR", 2, 5, 1, activation="sigmoid")
net.set_dataset(dataset)
net.compile(error='mean_squared_error',
optimizer=SGD(lr=0.3, momentum=0.9))
net.train(2000, report_rate=10, accuracy=1)
net.test()
```
Creates dynamic, rendered visualizations like this:
<img src="https://raw.githubusercontent.com/Calysto/conx/master/notebooks/network.png" width="500"></img>
## Install
`conx` requires Python3, Keras version 2.0.8 or greater, and some other Python modules that are installed automatically with pip.
**Note**: you may need to use pip3, or admin privileges (eg, sudo), or a user environment.
```bash
pip install conx -U
```
You will need to decide whether to use Theano, TensorFlow, or CNTK. Pick one. See [docs.microsoft.com](https://docs.microsoft.com/en-us/cognitive-toolkit/Setup-CNTK-on-your-machine) for installing CNTK on Windows or Linux. All platforms can also install either of the others using pip:
```bash
pip install theano
```
or
```bash
pip install tensorflow
```
On MacOS, you may also need to render the SVG visualizations:
```bash
brew install cairo
```
### Use with Jupyter Notebooks
To use the Network.dashboard() and camera functions, you will need to install and enable `ipywidgets`:
With pip:
``` bash
pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension
```
With conda
``` bash
conda install -c conda-forge ipywidgets
```
Installing **ipywidgets** with conda will also enable the extension for you.
### Changing Keras Backends
To use a Keras backend other than TensorFlow, edit (or create) `~/.keras/kerson.json`, like:
```json
{
"backend": "theano",
"image_data_format": "channels_last",
"epsilon": 1e-07,
"floatx": "float32"
}
```
## Examples
See the [notebooks folder](https://github.com/Calysto/conx/tree/master/notebooks) and the [documentation](http://conx.readthedocs.io/en/latest/) for additional examples.
## Differences with Keras
1. Conx does not allow targets to be a single value. Keras will
automatically turn single values into a onehot encoded vectors. In
conx, you should just convert such "labels" into their encodings
before training.
## Deep Learning for Simple Folk
Built in Python 3 on Keras 2.
[![CircleCI](https://circleci.com/gh/Calysto/conx/tree/master.svg?style=svg)](https://circleci.com/gh/Calysto/conx/tree/master) [![codecov](https://codecov.io/gh/Calysto/conx/branch/master/graph/badge.svg)](https://codecov.io/gh/Calysto/conx) [![Documentation Status](https://readthedocs.org/projects/conx/badge/?version=latest)](http://conx.readthedocs.io/en/latest/?badge=latest) [![PyPI version](https://badge.fury.io/py/conx.svg)](https://badge.fury.io/py/conx)
Read the documentation at [conx.readthedocs.io](http://conx.readthedocs.io/)
Ask questions on the mailing list: [conx-users](https://groups.google.com/forum/#!forum/conx-users)
Implements Deep Learning neural network algorithms using a simple interface with easy visualizations and useful analytical. Built on top of Keras, which can use either [TensorFlow](https://www.tensorflow.org/), [Theano](http://www.deeplearning.net/software/theano/), or [CNTK](https://www.cntk.ai/pythondocs/).
The network is specified to the constructor by providing sizes. For example, Network("XOR", 2, 5, 1) specifies a network named "XOR" with a 2-node input layer, 5-unit hidden layer, and a 1-unit output layer.
## Example
Computing XOR via a target function:
```python
from conx import Network, SGD
dataset = [[[0, 0], [0]],
[[0, 1], [1]],
[[1, 0], [1]],
[[1, 1], [0]]]
net = Network("XOR", 2, 5, 1, activation="sigmoid")
net.set_dataset(dataset)
net.compile(error='mean_squared_error',
optimizer=SGD(lr=0.3, momentum=0.9))
net.train(2000, report_rate=10, accuracy=1)
net.test()
```
Creates dynamic, rendered visualizations like this:
<img src="https://raw.githubusercontent.com/Calysto/conx/master/notebooks/network.png" width="500"></img>
## Install
`conx` requires Python3, Keras version 2.0.8 or greater, and some other Python modules that are installed automatically with pip.
**Note**: you may need to use pip3, or admin privileges (eg, sudo), or a user environment.
```bash
pip install conx -U
```
You will need to decide whether to use Theano, TensorFlow, or CNTK. Pick one. See [docs.microsoft.com](https://docs.microsoft.com/en-us/cognitive-toolkit/Setup-CNTK-on-your-machine) for installing CNTK on Windows or Linux. All platforms can also install either of the others using pip:
```bash
pip install theano
```
or
```bash
pip install tensorflow
```
On MacOS, you may also need to render the SVG visualizations:
```bash
brew install cairo
```
### Use with Jupyter Notebooks
To use the Network.dashboard() and camera functions, you will need to install and enable `ipywidgets`:
With pip:
``` bash
pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension
```
With conda
``` bash
conda install -c conda-forge ipywidgets
```
Installing **ipywidgets** with conda will also enable the extension for you.
### Changing Keras Backends
To use a Keras backend other than TensorFlow, edit (or create) `~/.keras/kerson.json`, like:
```json
{
"backend": "theano",
"image_data_format": "channels_last",
"epsilon": 1e-07,
"floatx": "float32"
}
```
## Examples
See the [notebooks folder](https://github.com/Calysto/conx/tree/master/notebooks) and the [documentation](http://conx.readthedocs.io/en/latest/) for additional examples.
## Differences with Keras
1. Conx does not allow targets to be a single value. Keras will
automatically turn single values into a onehot encoded vectors. In
conx, you should just convert such "labels" into their encodings
before training.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
conx-3.4.3.tar.gz
(52.7 kB
view details)
Built Distribution
conx-3.4.3-py2.py3-none-any.whl
(60.5 kB
view details)
File details
Details for the file conx-3.4.3.tar.gz
.
File metadata
- Download URL: conx-3.4.3.tar.gz
- Upload date:
- Size: 52.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8a254b6aee2ad98d275d228c9eb62c4e1fa9114d8406728994dd97cdf180bf4 |
|
MD5 | 78d2eb0a41f35dc6d51909c53ecd5bcd |
|
BLAKE2b-256 | 9a67522e6a38741b7659a28c9484bcb7e568cc2e4b36ca11a9484b9db7514263 |
File details
Details for the file conx-3.4.3-py2.py3-none-any.whl
.
File metadata
- Download URL: conx-3.4.3-py2.py3-none-any.whl
- Upload date:
- Size: 60.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b89ed3e08cc443047101e63428fa57274fb5226d476494ecea7a7237cc00cb1b |
|
MD5 | 13b59aed6fe22f27904ed31c79c48ec0 |
|
BLAKE2b-256 | 41a582c7ee2d3cbf436d4916ef37cd6ee5ee3ebf5126912fed5aca84dc71ed8b |