Skip to main content

PAU - Padé Activation Units

Padé Activation Units: End-to-end Learning of Activation Functions in Deep Neural Network

Arxiv link: https://arxiv.org/abs/1907.06732

1. About Padé Activation Units

Padé Activation Units (PAU) are a novel learnable activation function. PAUs encode activation functions as rational functions, trainable in an end-to-end fashion using backpropagation and can be seemingless integrated into any neural network in the same way as common activation functions (e.g. ReLU).

PAU matches or outperforms common activations in terms of predictive performance and training time. And, therefore relieves the network designer of having to commit to a potentially underperforming choice.

2. Dependencies

PyTorch>=1.1.0
CUDA>=10.1

3. Installation

PAU is implemented as a pytorch extension using CUDA 10.2. So all that is needed is to install the extension.

pip3 install --upgrade pip
pip3 install pau

If installation does not work, please run:

pip3 install wheel

For CUDA 10.1, download the wheel corresponding to your python3 version in the wheelhouse repo and install it with:

pip3 install pau-0.0.16-101-cp{your_version}-manylinux2014_x86_64.whl

If you encounter any trouble installing pau, please contact this person.

4. Using PAU in Neural Networks

PAU can be integrated in the same way as any other common activation function.

import torch
from pau_torch import PAU

model = torch.nn.Sequential(
    torch.nn.Linear(D_in, H),
    PAU(), # e.g. instead of torch.nn.ReLU()
    torch.nn.Linear(H, D_out),
)

5. Reproducing Results

To reproduce the reported results of the paper execute:

$ export PYTHONPATH="./" $ python experiments/main.py --dataset mnist --arch conv --optimizer adam --lr 2e-3

# DATASET: Name of the dataset, for MNIST use mnist and for Fashion-MNIST use fmnist
# ARCH: selected neural network architecture: vgg, lenet or conv
# OPTIMIZER: either adam or sgd
# LR: learning rate

Metadata

Release files for pau 0.0.17

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for pau 0.0.17
File
pau-0.0.17-102-cp38-cp38-manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
pau-0.0.17-102-cp37-cp37m-manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
pau-0.0.17-102-cp36-cp36m-manylinux2014_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 Details
pau-0.0.17-101-cp38-cp38-manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
pau-0.0.17-101-cp37-cp37m-manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
pau-0.0.17-101-cp36-cp36m-manylinux2014_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 Details

Total release size: 23.1 MB

Release files / pau-0.0.17-102-cp38-cp38-manylinux2014_x86_64.whl

Download URL pau-0.0.17-102-cp38-cp38-manylinux2014_x86_64.whl
Size 4.0 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3eb785a583a45a17e912e661c16dcacdf1f03124e1e77d888b042736d74902a9
BLAKE2b-256 checksum
How to use checksums
02d524c96d4c8c3288588bae073fd82fdf48e2c84b54b9f721ef9a43bd0e6129
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.9

Release files / pau-0.0.17-102-cp37-cp37m-manylinux2014_x86_64.whl

Download URL pau-0.0.17-102-cp37-cp37m-manylinux2014_x86_64.whl
Size 3.9 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f90527901f560b9715f7c393a4e2ab271bac03500cb0ef1cb925a986bcbe6d4a
BLAKE2b-256 checksum
How to use checksums
bddb1282eda14a1b5df216dceec5caf3577d4fcbed6ad8a9ad3adc43b7c8c43c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.9

Release files / pau-0.0.17-102-cp36-cp36m-manylinux2014_x86_64.whl

Download URL pau-0.0.17-102-cp36-cp36m-manylinux2014_x86_64.whl
Size 4.0 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
fa0c943742247597d59ca08a3d5975603d9883e817be25c65eb699c7eaf77d77
BLAKE2b-256 checksum
How to use checksums
f3444a3a78ae60cf1b75a5b964490a8f9f796e608501d5c616572118420a18ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.9

Release files / pau-0.0.17-101-cp38-cp38-manylinux2014_x86_64.whl

Download URL pau-0.0.17-101-cp38-cp38-manylinux2014_x86_64.whl
Size 3.8 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1fceec444fe5a7d9bb78241ed480b6cbea0b9c340baadb08bd8eaaa3195090d5
BLAKE2b-256 checksum
How to use checksums
6c0f62fdb6be9975f7222065cd0778f536e14ba5994b0198a644adfd5a04937c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.9

Release files / pau-0.0.17-101-cp37-cp37m-manylinux2014_x86_64.whl

Download URL pau-0.0.17-101-cp37-cp37m-manylinux2014_x86_64.whl
Size 3.7 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a7f933c0a8f26f3852ccfb965187b8ddfb1c6276a43395b92a7867739fcc8839
BLAKE2b-256 checksum
How to use checksums
82167f2dbdb9fd295e423e769c5d6ecb21994f500678462d01b46cb2db6c841a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.9

Release files / pau-0.0.17-101-cp36-cp36m-manylinux2014_x86_64.whl

Download URL pau-0.0.17-101-cp36-cp36m-manylinux2014_x86_64.whl
Size 3.8 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a6110e84325ecca3921d6134c028f62e8ee0c6c8d7e4482c370eb6914e610911
BLAKE2b-256 checksum
How to use checksums
05e567e5c2018f7f8a0586d06b053321a6c0a0251bac1c1db10f99bcdecc7ecc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.9

Release history Release notifications | RSS feed

This release

0.0.17 This release

6 release files

0.0.16

6 release files

0.0.15

3 release files

0.0.14

3 release files

0.0.13

3 release files

0.0.12

3 release files

0.0.11

3 release files

0.0.10

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page