Skip to main content

Python package that implements various algorithms using Generalized Operational Perceptron

Project description

PyGOP: A Python library for Generalized Operational Perceptron (GOP) based algorithms

Documentation Status Build Status

This package implements progressive learning algorithms using Generalized Operational Perceptron. PyGOP supports both single machine and cluster environment using CPU or GPU. This implementation includes the following algorithms:

  • Progressive Operational Perceptron (POP)
  • Heterogeneous Multilayer Generalized Operational Perceptron (HeMLGOP) and its variants
  • Fast Progressive Operational Perceptron (POPfast)
  • Progressive Operational Perceptron with Memory (POPmemO, POPmemH)

What is Generalized Operational Perceptron?

Generalized Operational Perceptron is an artificial neuron model that was proposed to replace the traditional McCulloch-Pitts neuron model. While standard perceptron model only performs a linear transformation followed by non-linear thresholding, GOP model encapsulates a diversity of both linear and non-linear operations (with traditional perceptron as a special case). Each GOP is characterized by learnable synaptic weights and an operator set comprising of 3 types of operations: nodal operation, pooling operation and activation operation. The 3 types of operations performed by a GOP loosely resemble the neuronal activities in a biological learning system of mammals in which each neuron conducts electrical signals over three distinct operations:

  • Modification of input signal from the synapse connection in the Dendrites.
  • Pooling operation of the modified input signals in the Soma.
  • Sending pulses when the pooled potential exceeds a limit in the Axon hillock.

By defining a set of nodal operators, pooling operators and activation operators, each GOP can select the suitable operators based on the problem at hand. Thus learning a GOP-based network involves finding the suitable operators as well as updating the synaptic weights. The author of GOP proposed Progressive Operational Perceptron (POP) algorithm to progressively learn GOP-based networks. Later, Heterogeneous Multilayer Generalized Operational Perceptron (HeMLGOP) algorithm and its variants (HoMLGOP, HeMLRN, HoMLRN) were proposed to learn heterogeneous architecture of GOPs with efficient operator set search procedure. In addition, fast version of POP, i.e., POPfast was proposed together with memory extensions POPmemO, POPmemH that augment POPfast by incorporating memory path.

Installation

PyPi installation

Tensorflow is required before installing PyGOP. To install tensorflow CPU version through pip::

pip install tensorflow

Or the GPU version::

pip install tensorflow-gpu

To install PyGOP with required dependencies::

pip install pygop

At the moment, PyGOP only supports Linux with both python 2 and python 3 (tested on Python 2.7 and Python 3.4, 3.5, 3.6, 3.7 with tensorflow for cpu)

Installation from source

To install latest version from github, clone the source from the project repository and install with setup.py::

git clone https://github.com/viebboy/PyGOP
cd PyGOP
python setup.py install --user

Documentation

Full documentation can be found here

Reference

If you use one of the algorithms, please cite the corresponding articles:

  • S. Kiranyaz, T. Ince, A. Iosifidis and M. Gabbouj, "Progressive Operational Perceptron", Neurocomputing, vol 224, pp. 142-154, 2017.
  • D. T. Tran, S. Kiranyaz, M. Gabbouj and A. Iosifidis, "Heterogeneous Multilayer Generalized Operational Perceptron", arXiv preprint arXiv:1804.05093, 2018.
  • D. T. Tran, S. Kiranyaz, M. Gabbouj and A. Iosifidis, "Progressive Operational Perceptron with Memory", arXiv preprint arXiv:1808.06377, 2018.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygop-0.2.2.tar.gz (36.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pygop-0.2.2-py3-none-any.whl (60.4 kB view details)

Uploaded Python 3

pygop-0.2.2-py2-none-any.whl (61.1 kB view details)

Uploaded Python 2

File details

Details for the file pygop-0.2.2.tar.gz.

File metadata

  • Download URL: pygop-0.2.2.tar.gz
  • Upload date:
  • Size: 36.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.6

File hashes

Hashes for pygop-0.2.2.tar.gz
Algorithm Hash digest
SHA256 e446527193818bbf31fee3bb1c4321a9a186069dd3af85c82d31c60ff4ed5beb
MD5 0a304b334ae2b4b628659cd4b40cf030
BLAKE2b-256 c34389869ea6bb27e6cae4c7f9f2b990c55317cb6353147539414617a84a1ff6

See more details on using hashes here.

File details

Details for the file pygop-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pygop-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 60.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.6

File hashes

Hashes for pygop-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0a09bb4692ae8eadd9f78763a1db111fc43c2ae21cd4df68749104fc12de3731
MD5 f4ab88a4741210f83c6003ab8eeb32dc
BLAKE2b-256 d13d1f988459927667c9bcb0c6fb69d60029dc385c465a21991e2c4f07e0f6b0

See more details on using hashes here.

File details

Details for the file pygop-0.2.2-py2-none-any.whl.

File metadata

  • Download URL: pygop-0.2.2-py2-none-any.whl
  • Upload date:
  • Size: 61.1 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.16

File hashes

Hashes for pygop-0.2.2-py2-none-any.whl
Algorithm Hash digest
SHA256 49470a617f280bbbfeb8bfee5cdb1db2307a4e1090247d7225e4072aeff5cf1d
MD5 a5cf4d16fa6273fe36a85112194608bc
BLAKE2b-256 79e944d0a2d3df79e83d4b3645b4cb4fe1fe3cbc9a0c35b78fd8d71ac50317be

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page