EpyNN


NameEpyNN JSON
Version 1.2.13 PyPI version JSON
download
home_pagehttps://github.com/synthaze/epynn
SummaryEpyNN: Educational python for Neural Networks.
upload_time2024-01-06 19:50:21
maintainer
docs_urlNone
authorFlorian Malard and Stéphanie Olivier-Van Stichelen
requires_python>=3.7
licenseGPL-3.0 License
keywords
VCS
bugtrack_url
requirements cycler kiwisolver numpy Pillow Pygments pyparsing python-dateutil six tabulate termcolor texttable jupyter nbconvert scipy wget utilsovs-pkg matplotlib
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # EpyNN

![](https://img.shields.io/github/languages/top/synthaze/epynn) ![](https://img.shields.io/github/license/synthaze/epynn) ![](https://img.shields.io/github/last-commit/synthaze/epynn)

![](https://img.shields.io/github/stars/synthaze/epynn?style=social) ![](https://img.shields.io/twitter/follow/epynn_synthaze?label=Follow&style=social)

**EpyNN is written in pure Python/NumPy.**

If you use EpyNN in academia, please cite:

Malard F., Danner L., Rouzies E., Meyer J. G., Lescop E., Olivier-Van Stichelen S. [**EpyNN: Educational python for Neural Networks**](https://www.softxjournal.com/article/S2352-7110(22)00090-5/fulltext), *SoftwareX* 19 (2022).

## Documentation

Please visit https://epynn.net/ for extensive documentation.

### Purpose

EpyNN is intended for **teachers**, **students**, **scientists**, or more generally anyone with minimal skills in Python programming **who wish to understand** and build from basic implementations of Neural Network architectures.

Although EpyNN can be used for production, it is meant to be a library of **homogeneous architecture templates** and **practical examples** which is expected to save an important amount of time for people who wish to learn, teach or **develop from scratch**.

### Content

EpyNN features **scalable**, **minimalistic** and **homogeneous** implementations of major Neural Network architectures in **pure Python/Numpy** including:

* [Embedding layer (Input)](https://epynn.net/Embedding.html)
* [Fully connected layer (Dense)](https://epynn.net/Dense.html)
* [Recurrent Neural Network (RNN)](https://epynn.net/RNN.html)
* [Long Short-Term Memory (LSTM)](https://epynn.net/LSTM.html)
* [Gated Recurrent Unit (GRU)](https://epynn.net/GRU.html)
* [Convolution (CNN)](https://epynn.net/Convolution.html)
* [Pooling (CNN)](https://epynn.net/Pooling.html)
* [Dropout - Regularization](https://epynn.net/Dropout.html)
* [Flatten - Adapter](https://epynn.net/Flatten.html)

Model and function rules and definition:

* [Architecture Layers - Model](https://epynn.net/EpyNN_Model.html)
* [Neural Network - Model](https://epynn.net/Layer_Model.html)
* [Data - Model](https://epynn.net/Data_Model.html)
* [Activation - Functions](https://epynn.net/activation.html)
* [Loss - Functions](https://epynn.net/loss.html)

While not enhancing, extending or replacing EpyNN's documentation, series of live examples in Python and Jupyter notebook formats are offered online and within the archive, including:

* [Data preparation - Examples](https://epynn.net/data_examples.html)
* [Network training - Examples](https://epynn.net/run_examples.html)

### Reliability

EpyNN has been cross-validated against TensorFlow/Keras API and provides identical results for identical configurations in the limit of float64 precision.

Please see [Is EpyNN reliable?](https://epynn.net/index.html#is-epynn-reliable) for details and executable codes.

### Recommended install

* **Linux/MacOS**

```bash

# Use bash shell
bash

# Clone git repository
git clone https://github.com/synthaze/EpyNN

# Change directory to EpyNN
cd EpyNN

# Install EpyNN dependencies
pip3 install -r requirements.txt

# Export EpyNN path in $PYTHONPATH for current session
export PYTHONPATH=$PYTHONPATH:$PWD

# Alternatively, not recommended
# pip3 install EpyNN
# epynn
```

**Linux:** Permanent export of EpyNN directory path in ```$PYTHONPATH```.

```bash
# Append export instruction to the end of .bashrc file
echo "export PYTHONPATH=$PYTHONPATH:$PWD" >> ~/.bashrc

# Source .bashrc to refresh $PYTHONPATH
source ~/.bashrc
```

**MacOS:** Permanent export of EpyNN directory path in ```$PYTHONPATH```.

```bash
# Append export instruction to the end of .bash_profile file
echo "export PYTHONPATH=$PYTHONPATH:$PWD" >> ~/.bash_profile

# Source .bash_profile to refresh $PYTHONPATH
source ~/.bash_profile
```

* **Windows**

```bash
# Clone git repository
git clone https://github.com/synthaze/EpyNN

# Change directory to EpyNN
chdir EpyNN

# Install EpyNN dependencies
pip3 install -r requirements.txt

# Show full path of EpyNN directory
echo %cd%

# Alternatively, not recommended
# pip3 install EpyNN
# epynn
```

Copy the full path of EpyNN directory, then go to:
``Control Panel > System > Advanced > Environment variable``

If you already have ``PYTHONPATH`` in the ``User variables`` section, select it and click ``Edit``, otherwise click ``New`` to add it.

Paste the full path of EpyNN directory in the input field, keep in mind that paths in ``PYTHONPATH`` should be comma-separated.

ANSI coloring schemes do work on native Windows10 and later. For prior Windows versions, users should configure their environment to work with ANSI coloring schemes for optimal experience.

## Current release

### 1.2 Publication release

* Minor revisions for peer-review process.

See [CHANGELOG.md](CHANGELOG.md) for past releases.



## Project tree

**epynn**
 * [convolution](epynn/convolution)
   * [backward.py](epynn/convolution/backward.py)
   * [forward.py](epynn/convolution/forward.py)
   * [models.py](epynn/convolution/models.py)
   * [parameters.py](epynn/convolution/parameters.py)
 * [dense](epynn/dense)
   * [backward.py](epynn/dense/backward.py)
   * [forward.py](epynn/dense/forward.py)
   * [models.py](epynn/dense/models.py)
   * [parameters.py](epynn/dense/parameters.py)
 * [dropout](epynn/dropout)
   * [backward.py](epynn/dropout/backward.py)
   * [forward.py](epynn/dropout/forward.py)
   * [models.py](epynn/dropout/models.py)
   * [parameters.py](epynn/dropout/parameters.py)
 * [embedding](epynn/embedding)
   * [backward.py](epynn/embedding/backward.py)
   * [dataset.py](epynn/embedding/dataset.py)
   * [forward.py](epynn/embedding/forward.py)
   * [models.py](epynn/embedding/models.py)
   * [parameters.py](epynn/embedding/parameters.py)
 * [flatten](epynn/flatten)
   * [backward.py](epynn/flatten/backward.py)
   * [forward.py](epynn/flatten/forward.py)
   * [models.py](epynn/flatten/models.py)
   * [parameters.py](epynn/flatten/parameters.py)
 * [gru](epynn/gru)
   * [backward.py](epynn/gru/backward.py)
   * [forward.py](epynn/gru/forward.py)
   * [models.py](epynn/gru/models.py)
   * [parameters.py](epynn/gru/parameters.py)
 * [lstm](epynn/lstm)
   * [backward.py](epynn/lstm/backward.py)
   * [forward.py](epynn/lstm/forward.py)
   * [models.py](epynn/lstm/models.py)
   * [parameters.py](epynn/lstm/parameters.py)
 * [pooling](epynn/pooling)
   * [backward.py](epynn/pooling/backward.py)
   * [forward.py](epynn/pooling/forward.py)
   * [models.py](epynn/pooling/models.py)
   * [parameters.py](epynn/pooling/parameters.py)
 * [rnn](epynn/rnn)
   * [backward.py](epynn/rnn/backward.py)
   * [forward.py](epynn/rnn/forward.py)
   * [models.py](epynn/rnn/models.py)
   * [parameters.py](epynn/rnn/parameters.py)
 * [template](epynn/template)
     * [backward.py](epynn/template/backward.py)
     * [forward.py](epynn/template/forward.py)
     * [models.py](epynn/template/models.py)
     * [parameters.py](epynn/template/parameters.py)
 * [network](epynn/network)
   * [backward.py](epynn/network/backward.py)
   * [evaluate.py](epynn/network/evaluate.py)
   * [forward.py](epynn/network/forward.py)
   * [hyperparameters.py](epynn/network/hyperparameters.py)
   * [initialize.py](epynn/network/initialize.py)
   * [models.py](epynn/network/models.py)
   * [report.py](epynn/network/report.py)
   * [training.py](epynn/network/training.py)
 * [commons](epynn/commons)
   * [io.py](epynn/commons/io.py)
   * [library.py](epynn/commons/library.py)
   * [logs.py](epynn/commons/logs.py)
   * [loss.py](epynn/commons/loss.py)
   * [maths.py](epynn/commons/maths.py)
   * [metrics.py](epynn/commons/metrics.py)
   * [models.py](epynn/commons/models.py)
   * [plot.py](epynn/commons/plot.py)
   * [schedule.py](epynn/commons/schedule.py)

**epynnlive**
 * [author_music](epynnlive/author_music)
 * [captcha_mnist](epynnlive/captcha_mnist)
 * [dummy_boolean](epynnlive/dummy_boolean)
 * [dummy_image](epynnlive/dummy_image)
 * [dummy_string](epynnlive/dummy_string)
 * [dummy_time](epynnlive/dummy_time)
 * [ptm_protein](epynnlive/ptm_protein)



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/synthaze/epynn",
    "name": "EpyNN",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "Florian Malard and St\u00e9phanie Olivier-Van Stichelen",
    "author_email": "florian.malard@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/b6/3f/12ac62ad8a23000d302ab5cb121ad1c7d045ebde46b1bcf55f68bfae8f62/EpyNN-1.2.13.tar.gz",
    "platform": null,
    "description": "# EpyNN\n\n![](https://img.shields.io/github/languages/top/synthaze/epynn) ![](https://img.shields.io/github/license/synthaze/epynn) ![](https://img.shields.io/github/last-commit/synthaze/epynn)\n\n![](https://img.shields.io/github/stars/synthaze/epynn?style=social) ![](https://img.shields.io/twitter/follow/epynn_synthaze?label=Follow&style=social)\n\n**EpyNN is written in pure Python/NumPy.**\n\nIf you use EpyNN in academia, please cite:\n\nMalard F., Danner L., Rouzies E., Meyer J. G., Lescop E., Olivier-Van Stichelen S. [**EpyNN: Educational python for Neural Networks**](https://www.softxjournal.com/article/S2352-7110(22)00090-5/fulltext), *SoftwareX* 19 (2022).\n\n## Documentation\n\nPlease visit https://epynn.net/ for extensive documentation.\n\n### Purpose\n\nEpyNN is intended for **teachers**, **students**, **scientists**, or more generally anyone with minimal skills in Python programming **who wish to understand** and build from basic implementations of Neural Network architectures.\n\nAlthough EpyNN can be used for production, it is meant to be a library of **homogeneous architecture templates** and **practical examples** which is expected to save an important amount of time for people who wish to learn, teach or **develop from scratch**.\n\n### Content\n\nEpyNN features **scalable**, **minimalistic** and **homogeneous** implementations of major Neural Network architectures in **pure Python/Numpy** including:\n\n* [Embedding layer (Input)](https://epynn.net/Embedding.html)\n* [Fully connected layer (Dense)](https://epynn.net/Dense.html)\n* [Recurrent Neural Network (RNN)](https://epynn.net/RNN.html)\n* [Long Short-Term Memory (LSTM)](https://epynn.net/LSTM.html)\n* [Gated Recurrent Unit (GRU)](https://epynn.net/GRU.html)\n* [Convolution (CNN)](https://epynn.net/Convolution.html)\n* [Pooling (CNN)](https://epynn.net/Pooling.html)\n* [Dropout - Regularization](https://epynn.net/Dropout.html)\n* [Flatten - Adapter](https://epynn.net/Flatten.html)\n\nModel and function rules and definition:\n\n* [Architecture Layers - Model](https://epynn.net/EpyNN_Model.html)\n* [Neural Network - Model](https://epynn.net/Layer_Model.html)\n* [Data - Model](https://epynn.net/Data_Model.html)\n* [Activation - Functions](https://epynn.net/activation.html)\n* [Loss - Functions](https://epynn.net/loss.html)\n\nWhile not enhancing, extending or replacing EpyNN's documentation, series of live examples in Python and Jupyter notebook formats are offered online and within the archive, including:\n\n* [Data preparation - Examples](https://epynn.net/data_examples.html)\n* [Network training - Examples](https://epynn.net/run_examples.html)\n\n### Reliability\n\nEpyNN has been cross-validated against TensorFlow/Keras API and provides identical results for identical configurations in the limit of float64 precision.\n\nPlease see [Is EpyNN reliable?](https://epynn.net/index.html#is-epynn-reliable) for details and executable codes.\n\n### Recommended install\n\n* **Linux/MacOS**\n\n```bash\n\n# Use bash shell\nbash\n\n# Clone git repository\ngit clone https://github.com/synthaze/EpyNN\n\n# Change directory to EpyNN\ncd EpyNN\n\n# Install EpyNN dependencies\npip3 install -r requirements.txt\n\n# Export EpyNN path in $PYTHONPATH for current session\nexport PYTHONPATH=$PYTHONPATH:$PWD\n\n# Alternatively, not recommended\n# pip3 install EpyNN\n# epynn\n```\n\n**Linux:** Permanent export of EpyNN directory path in ```$PYTHONPATH```.\n\n```bash\n# Append export instruction to the end of .bashrc file\necho \"export PYTHONPATH=$PYTHONPATH:$PWD\" >> ~/.bashrc\n\n# Source .bashrc to refresh $PYTHONPATH\nsource ~/.bashrc\n```\n\n**MacOS:** Permanent export of EpyNN directory path in ```$PYTHONPATH```.\n\n```bash\n# Append export instruction to the end of .bash_profile file\necho \"export PYTHONPATH=$PYTHONPATH:$PWD\" >> ~/.bash_profile\n\n# Source .bash_profile to refresh $PYTHONPATH\nsource ~/.bash_profile\n```\n\n* **Windows**\n\n```bash\n# Clone git repository\ngit clone https://github.com/synthaze/EpyNN\n\n# Change directory to EpyNN\nchdir EpyNN\n\n# Install EpyNN dependencies\npip3 install -r requirements.txt\n\n# Show full path of EpyNN directory\necho %cd%\n\n# Alternatively, not recommended\n# pip3 install EpyNN\n# epynn\n```\n\nCopy the full path of EpyNN directory, then go to:\n``Control Panel > System > Advanced > Environment variable``\n\nIf you already have ``PYTHONPATH`` in the ``User variables`` section, select it and click ``Edit``, otherwise click ``New`` to add it.\n\nPaste the full path of EpyNN directory in the input field, keep in mind that paths in ``PYTHONPATH`` should be comma-separated.\n\nANSI coloring schemes do work on native Windows10 and later. For prior Windows versions, users should configure their environment to work with ANSI coloring schemes for optimal experience.\n\n## Current release\n\n### 1.2 Publication release\n\n* Minor revisions for peer-review process.\n\nSee [CHANGELOG.md](CHANGELOG.md) for past releases.\n\n\n\n## Project tree\n\n**epynn**\n * [convolution](epynn/convolution)\n   * [backward.py](epynn/convolution/backward.py)\n   * [forward.py](epynn/convolution/forward.py)\n   * [models.py](epynn/convolution/models.py)\n   * [parameters.py](epynn/convolution/parameters.py)\n * [dense](epynn/dense)\n   * [backward.py](epynn/dense/backward.py)\n   * [forward.py](epynn/dense/forward.py)\n   * [models.py](epynn/dense/models.py)\n   * [parameters.py](epynn/dense/parameters.py)\n * [dropout](epynn/dropout)\n   * [backward.py](epynn/dropout/backward.py)\n   * [forward.py](epynn/dropout/forward.py)\n   * [models.py](epynn/dropout/models.py)\n   * [parameters.py](epynn/dropout/parameters.py)\n * [embedding](epynn/embedding)\n   * [backward.py](epynn/embedding/backward.py)\n   * [dataset.py](epynn/embedding/dataset.py)\n   * [forward.py](epynn/embedding/forward.py)\n   * [models.py](epynn/embedding/models.py)\n   * [parameters.py](epynn/embedding/parameters.py)\n * [flatten](epynn/flatten)\n   * [backward.py](epynn/flatten/backward.py)\n   * [forward.py](epynn/flatten/forward.py)\n   * [models.py](epynn/flatten/models.py)\n   * [parameters.py](epynn/flatten/parameters.py)\n * [gru](epynn/gru)\n   * [backward.py](epynn/gru/backward.py)\n   * [forward.py](epynn/gru/forward.py)\n   * [models.py](epynn/gru/models.py)\n   * [parameters.py](epynn/gru/parameters.py)\n * [lstm](epynn/lstm)\n   * [backward.py](epynn/lstm/backward.py)\n   * [forward.py](epynn/lstm/forward.py)\n   * [models.py](epynn/lstm/models.py)\n   * [parameters.py](epynn/lstm/parameters.py)\n * [pooling](epynn/pooling)\n   * [backward.py](epynn/pooling/backward.py)\n   * [forward.py](epynn/pooling/forward.py)\n   * [models.py](epynn/pooling/models.py)\n   * [parameters.py](epynn/pooling/parameters.py)\n * [rnn](epynn/rnn)\n   * [backward.py](epynn/rnn/backward.py)\n   * [forward.py](epynn/rnn/forward.py)\n   * [models.py](epynn/rnn/models.py)\n   * [parameters.py](epynn/rnn/parameters.py)\n * [template](epynn/template)\n     * [backward.py](epynn/template/backward.py)\n     * [forward.py](epynn/template/forward.py)\n     * [models.py](epynn/template/models.py)\n     * [parameters.py](epynn/template/parameters.py)\n * [network](epynn/network)\n   * [backward.py](epynn/network/backward.py)\n   * [evaluate.py](epynn/network/evaluate.py)\n   * [forward.py](epynn/network/forward.py)\n   * [hyperparameters.py](epynn/network/hyperparameters.py)\n   * [initialize.py](epynn/network/initialize.py)\n   * [models.py](epynn/network/models.py)\n   * [report.py](epynn/network/report.py)\n   * [training.py](epynn/network/training.py)\n * [commons](epynn/commons)\n   * [io.py](epynn/commons/io.py)\n   * [library.py](epynn/commons/library.py)\n   * [logs.py](epynn/commons/logs.py)\n   * [loss.py](epynn/commons/loss.py)\n   * [maths.py](epynn/commons/maths.py)\n   * [metrics.py](epynn/commons/metrics.py)\n   * [models.py](epynn/commons/models.py)\n   * [plot.py](epynn/commons/plot.py)\n   * [schedule.py](epynn/commons/schedule.py)\n\n**epynnlive**\n * [author_music](epynnlive/author_music)\n * [captcha_mnist](epynnlive/captcha_mnist)\n * [dummy_boolean](epynnlive/dummy_boolean)\n * [dummy_image](epynnlive/dummy_image)\n * [dummy_string](epynnlive/dummy_string)\n * [dummy_time](epynnlive/dummy_time)\n * [ptm_protein](epynnlive/ptm_protein)\n\n\n",
    "bugtrack_url": null,
    "license": "GPL-3.0 License",
    "summary": "EpyNN: Educational python for Neural Networks.",
    "version": "1.2.13",
    "project_urls": {
        "Bug Tracker": "https://github.com/synthaze/epynn/issues",
        "Homepage": "https://github.com/synthaze/epynn"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9293a2cdbdf6305e380b6b2160ad1e7f961afee58ee3b4786ba2ac940ea72251",
                "md5": "ec5fd58cc857184c71b7d3084601249e",
                "sha256": "dbe1036acb04c1d5f541c1ac98d4b51048b5d404a5751d7ab9d1ba200a8c53f5"
            },
            "downloads": -1,
            "filename": "EpyNN-1.2.13-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ec5fd58cc857184c71b7d3084601249e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 101508,
            "upload_time": "2024-01-06T19:50:19",
            "upload_time_iso_8601": "2024-01-06T19:50:19.384358Z",
            "url": "https://files.pythonhosted.org/packages/92/93/a2cdbdf6305e380b6b2160ad1e7f961afee58ee3b4786ba2ac940ea72251/EpyNN-1.2.13-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b63f12ac62ad8a23000d302ab5cb121ad1c7d045ebde46b1bcf55f68bfae8f62",
                "md5": "b8582019f173e4c08505bf73a9234234",
                "sha256": "8d23bf3f0043f0a339b7e4b026a7ee76d70349bdcd3c8a62af4f26466aa4a829"
            },
            "downloads": -1,
            "filename": "EpyNN-1.2.13.tar.gz",
            "has_sig": false,
            "md5_digest": "b8582019f173e4c08505bf73a9234234",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 47551,
            "upload_time": "2024-01-06T19:50:21",
            "upload_time_iso_8601": "2024-01-06T19:50:21.534281Z",
            "url": "https://files.pythonhosted.org/packages/b6/3f/12ac62ad8a23000d302ab5cb121ad1c7d045ebde46b1bcf55f68bfae8f62/EpyNN-1.2.13.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-06 19:50:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "synthaze",
    "github_project": "epynn",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "cycler",
            "specs": [
                [
                    "==",
                    "0.10.0"
                ]
            ]
        },
        {
            "name": "kiwisolver",
            "specs": [
                [
                    "==",
                    "1.3.2"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.21.2"
                ]
            ]
        },
        {
            "name": "Pillow",
            "specs": [
                [
                    "==",
                    "8.3.1"
                ]
            ]
        },
        {
            "name": "Pygments",
            "specs": [
                [
                    "==",
                    "2.10.0"
                ]
            ]
        },
        {
            "name": "pyparsing",
            "specs": [
                [
                    "==",
                    "2.4.7"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.8.2"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "tabulate",
            "specs": [
                [
                    "==",
                    "0.8.9"
                ]
            ]
        },
        {
            "name": "termcolor",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "texttable",
            "specs": [
                [
                    "==",
                    "1.6.4"
                ]
            ]
        },
        {
            "name": "jupyter",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "nbconvert",
            "specs": [
                [
                    "==",
                    "5.4.1"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    "==",
                    "1.6.3"
                ]
            ]
        },
        {
            "name": "wget",
            "specs": [
                [
                    "==",
                    "3.2"
                ]
            ]
        },
        {
            "name": "utilsovs-pkg",
            "specs": []
        },
        {
            "name": "matplotlib",
            "specs": []
        }
    ],
    "lcname": "epynn"
}
        
Elapsed time: 0.16962s