EpyNN
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, 2021, Submitted.
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)
- Fully connected layer (Dense)
- Recurrent Neural Network (RNN)
- Long Short-Term Memory (LSTM)
- Gated Recurrent Unit (GRU)
- Convolution (CNN)
- Pooling (CNN)
- Dropout - Regularization
- Flatten - Adapter
Model and function rules and definition:
- Architecture Layers - Model
- Neural Network - Model
- Data - Model
- Activation - Functions
- Loss - Functions
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:
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? for details and executable codes.
Recommended install
- Linux/MacOS
# Use bash shell
bash
# Clone git repository
git clone https://github.com/Synthaze/EpyNN
# Alternatively, not recommended
# pip3 install EpyNN
# 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
Linux: Permanent export of EpyNN directory path in $PYTHONPATH
.
# 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
.
# 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
# Clone git repository
git clone https://github.com/Synthaze/EpyNN
# Alternatively, not recommended
# pip3 install EpyNN
# epynn
# Change directory to EpyNN
chdir EpyNN
# Install EpyNN dependencies
pip3 install -r requirements.txt
# Show full path of EpyNN directory
echo %cd%
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.0 - Initial release
- nnlibs contains API sources.
- nnlive contains live examples in Python and Jupyter notebook formats.
- https://epynn.net/ contains extensive documentation.
See CHANGELOG.md for past releases.
Project tree
nnlibs
nnlive