Donate Codacy Badge HitCount Build Status codecov

Echo-AI

Development to resume from June

Python package containing all mathematical backend algorithms used in Machine Learning. The full documentation for Echo is provided here.

Table of Contents

About

Echo-AI Package is created to provide an implementation of the most promising mathematical algorithms, which are missing in the most popular deep learning libraries, such as PyTorch, Keras and TensorFlow.

Activation Functions

The package contains implementation for following activation functions (✅ - implemented functions, 🕑 - functions to be implemented soon, :white_large_square: - function is implemented in the original deep learning package):

# Function Equation PyTorch TensorFlow-Keras TensorFlow - Core
1 Weighted Tanh equation 🕑
2 Swish equation 🕑
3 ESwish equation 🕑
4 Aria2 equation 🕑
5 ELiSH equation 🕑
6 HardELiSH equation 🕑
7 Mila equation 🕑
8 SineReLU equation 🕑
9 Flatten T-Swish equation 🕑
10 SQNL equation 🕑
11 ISRU equation 🕑
12 ISRLU equation 🕑
13 Bent's identity equation 🕑
14 Soft Clipping equation 🕑
15 SReLU equation 🕑
15 BReLU equation 🕑
16 APL equation 🕑
17 Soft Exponential equation 🕑
18 Maxout equation 🕑
19 Mish equation 🕑
20 Beta Mish equation 🕑
21 RReLU equation 🕑 🕑
22 CELU equation 🕑
23 HardTanh equation 🕑
24 GLU equation 🕑 🕑
25 LogSigmoid equation 🕑
26 TanhShrink equation 🕑
27 HardShrink equation 🕑
28 SoftShrink equation 🕑
29 SoftMin equation 🕑
30 LogSoftmax equation 🕑
31 Gumbel-Softmax 🕑 🕑
32 LeCun's Tanh 🕑
33 TaLU 🕑 🕑
34 SiLU 🕑
35 GELU 🕑 🕑 🕑
36 NReLU 🕑 🕑 🕑
37 CReLU 🕑 🕑
38 ProbAct 🕑 🕑 🕑
39 Noisy Activation Function 🕑 🕑 🕑
40 NLReLU 🕑

Repository Structure

The repository has the following structure:

- echoAI # main package directory
| - Activation # sub-package containing activation functions implementation
| |- Torch  # sub-package containing implementation for PyTorch
| | | - functional.py # script which contains implementation of activation functions
| | | - weightedTanh.py # activation functions wrapper class for PyTorch
| | | - ... # PyTorch activation functions wrappers
| |- TF_Keras  # sub-package containing implementation for Tensorflow-Keras
| | | - custom_activation.py # script which contains implementation of activation functions
| - __init__.py

- Observations # Folder containing other assets

- docs # Sphinx documentation folder

- LICENSE # license file
- README.md
- setup.py # package setup file
- Scripts #folder, which contains the Black and Flake8 automated test scripts
- Smoke_tests # folder, which contains scripts with demonstration of activation functions usage
- Unit_tests # folder, which contains unit test scripts

Setup Instructions

To install echoAI package from PyPI run the following command:

$ pip install echoAI

Code Examples:

Sample scripts are provided in Smoke_tests folder.

PyTorch:

# import PyTorch
import torch

# import activation function from echoAI
from echoAI.Activation.Torch.mish import Mish

# apply activation function
mish = Mish()
t = torch.tensor(0.1)
t_mish = mish(t)

TensorFlow Keras:

#import tensorflow
import tensorflow as tf
from tensorflow.keras import layers
from tensorflow.keras.layers import Dense, Flatten

# import activation function from echoAI
from echoAI.Activation.TF_Keras.custom_activation import Mish

model = tf.keras.Sequential([
    layers.Flatten(),
    layers.Dense(128, input_shape=(784,)),
    Mish(), # use the activation function
    layers.Dense(64, activation='relu'),
    layers.Dense(10, activation='softmax')])

# Compile the model
model.compile(optimizer = "adam", loss = "mean_squared_error", metrics = ["accuracy"])

# Fit the model
model.fit(x = X_train, y = y_train, epochs = 3, batch_size = 128)