Evolutionnary Neural Network Model with PyTorch
Project description
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.
Important links
Official source code repo: https://github.com/fabienfrfr/functionalfilet
Download releases: https://pypi.org/project/functionalfilet
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)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file functionalfilet-0.5.2.tar.gz
.
File metadata
- Download URL: functionalfilet-0.5.2.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25827a177fe7da4bb137cd1ca28a341dbdd8dbdc8b13fb210cddfe48f7141e30 |
|
MD5 | 04e5f82d7c6b655bb00ee09f974e6917 |
|
BLAKE2b-256 | 946f26ecd3127ad8504e7a5dcb35ac93532fe87d468b393eb2c4391234636d16 |
File details
Details for the file functionalfilet-0.5.2-py3-none-any.whl
.
File metadata
- Download URL: functionalfilet-0.5.2-py3-none-any.whl
- Upload date:
- Size: 21.6 kB
- Tags: Python 3
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 701e09a063527abc9b06d93df1ba7397de50b58ced4f5ebf684f2e248b799ac6 |
|
MD5 | bb311a13b28c796232aee3fd002bcb49 |
|
BLAKE2b-256 | 78167fd52159c715e83e0a0028b94176f9cdc953b357202f8b970d496fc6f90f |