Skip to main content

GitHub PyPi DOI

https://raw.githubusercontent.com/fabienfrfr/functionalfilet/main/branding/logo.png

Functional Filet is a Python module for machine learning build on top of Pytorch.

This project explores a new method of constructing linear neural networks using evolutionary algorithms and graphs with gradient descent for adjustment of network weights.

More details in the Arxiv preprint An Artificial Neural Network Functionalized by Evolution (model based).

Installation

Dependencies

Functional-Filet requires:

  • Python (>= 3.5)

  • NumPy

  • Pandas

  • PyTorch (>= 1.0.0)

  • Torchvision

  • Matplotlib

  • Networkx

Optionally, you need:

  • Scikit-learn

  • Seaborn

  • Gym


Functional-Filet is stable only from version 0.5.2, any previous version corresponds to the development phase.

However, there are several possible optimizations, in particular on the restructuring of Torch tensors in Python which could be done in C++. For this, it is possible that there will be several code modifications in the future.

The documentation includes more detailed installation and examples instructions.

User installation

If you already have a working installation of numpy and pytorch, the easiest way to install scikit-learn is using pip:

python3 -m pip install functionalfilet

Development

We welcome new contributors of all experience levels.

Source code

You can check the latest sources with the command:

git clone https://github.com/fabienfrfr/functionalfilet.git

Utilization

Once installed, if we consider two variables feature X and label y already executed upstream of the code, here is a simple example of use in the case of a classification problem:

# package
from functionalfilet import model as ff
# init model
model = ff.FunctionalFilet()
# train
model.fit(X,y)
# test
y_pred = model.predict(X, index=seeder_idx)

Existing code

There is in the example directory of the git, several code to play with the learning parameters in simple cases. A brief summary is described at the top of each file:

python3 -m IPython
# universal approximation theorem
run example/uat_regression.py
# classification with overlapping and unbalance
run example/blob_classification.py
# reinforcment leaning with time dependancy
run example/gym_RL-CartPole-v0.py

Citation

If you take inspiration from my machine learning algorithm for a scientific publication, we would appreciate citations:

@article{furfaro2022artificial,
title={An Artificial Neural Network Functionalized by Evolution},
author={Furfaro, Fabien and Bar-Hen, Avner and Berthelot, Geoffroy},
journal={arXiv preprint arXiv:2205.10118},
year={2022}
}

Attribution required : Fabien Furfaro (CC 4.0 BY NC ND SA)

Metadata

Release files for functionalfilet 0.5.2

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

Source distribution (sdist)

Source distribution for functionalfilet 0.5.2
File Size Uploaded
functionalfilet-0.5.2.tar.gz 16.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for functionalfilet 0.5.2
File Interpreter ABI Platform
functionalfilet-0.5.2-py3-none-any.whl Python 3 none any Details

Total release size: 38.1 kB

Release files / functionalfilet-0.5.2.tar.gz

Download URL functionalfilet-0.5.2.tar.gz
Size 16.5 kB
Tags Source
SHA-256 checksum
How to use checksums
25827a177fe7da4bb137cd1ca28a341dbdd8dbdc8b13fb210cddfe48f7141e30
BLAKE2b-256 checksum
How to use checksums
946f26ecd3127ad8504e7a5dcb35ac93532fe87d468b393eb2c4391234636d16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.8.2 requests/2.18.4 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.5.10

Release files / functionalfilet-0.5.2-py3-none-any.whl

Download URL functionalfilet-0.5.2-py3-none-any.whl
Size 21.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
701e09a063527abc9b06d93df1ba7397de50b58ced4f5ebf684f2e248b799ac6
BLAKE2b-256 checksum
How to use checksums
78167fd52159c715e83e0a0028b94176f9cdc953b357202f8b970d496fc6f90f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.8.2 requests/2.18.4 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.5.10

Release history Release notifications | RSS feed

This release

0.5.2 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.1.0

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

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