Skip to content

Python package containing all custom and SOTA mathematical backend algorithms used in Machine Learning.

License

Notifications You must be signed in to change notification settings

lidadreamer/Echo

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Donate

Echo-AI

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, ⬜ - function is implemented in the original deep learning package):

# Function Equation Keras 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 ReLU6 equation βœ… ⬜ πŸ•‘ πŸ•‘
24 HardTanh equation βœ… ⬜ βœ… πŸ•‘
25 GLU equation πŸ•‘ ⬜ πŸ•‘ πŸ•‘
26 LogSigmoid equation βœ… ⬜ βœ… πŸ•‘
27 TanhShrink equation βœ… ⬜ βœ… πŸ•‘
28 HardShrink equation βœ… ⬜ βœ… πŸ•‘
29 SoftShrink equation βœ… ⬜ βœ… πŸ•‘
30 SoftMin equation βœ… ⬜ βœ… πŸ•‘
31 LogSoftmax equation βœ… ⬜ βœ… πŸ•‘
32 Gumbel-Softmax πŸ•‘ ⬜ πŸ•‘ πŸ•‘
33 LeCun's Tanh βœ… βœ… βœ… πŸ•‘
34 TaLU βœ… πŸ•‘ βœ… πŸ•‘

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
| |- Keras  # sub-package containing implementation for Keras
| | | - custom_activations.py # script which contains implementation of activation functions
| |- 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
- 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)

Keras:

# import Keras
from keras import layers
from keras.models import Model
from keras.layers import Input, Dense, Activation, ZeroPadding2D, BatchNormalization, Flatten, Conv2D

# import activation function from echoAI
from echoAI.Activation.Keras.custom_activations import Mish

def CNNModel(input_shape):
    X_input = Input(input_shape)
    X = ZeroPadding2D((3, 3))(X_input)X
    X = Conv2D(32, (3, 3), strides = (1, 1), name = 'conv0')(X)
    X = BatchNormalization(axis = 3, name = 'bn0')(X)

    # apply the activation function
    X = Mish()(X)

    # MAXPOOL
    X = MaxPooling2D((2, 2), name='max_pool')(X)

    # FLATTEN X (means convert it to a vector) + FULLYCONNECTED
    X = Flatten()(X)
    X = Dense(10, activation='softmax', name='fc')(X)

    # Create model
    model = Model(inputs = X_input, outputs = X, name='CNNModel')

    return model

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)

About

Python package containing all custom and SOTA mathematical backend algorithms used in Machine Learning.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%