#neural-network #ann #traits #evolution #structures #evaluate #net

favannat

Algorithms to evaluate the function encoded in ANN-like structures

14 releases

0.6.4 Aug 11, 2023
0.6.2 May 13, 2023
0.5.2 Apr 2, 2022
0.5.0 Mar 31, 2022
0.3.0 Jul 23, 2021

#847 in Algorithms

Download history 35/week @ 2024-07-23 19/week @ 2024-07-30 2/week @ 2024-09-17 14/week @ 2024-09-24

119 downloads per month
Used in set_genome

MIT license

71KB
1.5K SLoC

favannat (FAbricate and eVAluate Neural Networks of Arbitrary Topology)

Crate is functional but still in early development.

Introduction

This crates aims to provide some semantics and data structures that allow to turn a somewhat generic description of a neural net into some executable function.

Therefore it provides the "network" termes like "node" and "edge" and a roughly sketched interface to execute nets; namely the "Fabricator" trait and the "Evaluator" trait.

Further it provides one implementation of those traits.

Limitations

Only DAGs (directed, acyclic graphs) can be evaluated, which is by design. It is planned to implement logic to unroll recurrent networks into DAGs.

Contribution

Any thoughts on style and correctness/usefulness are very welcome. Different implementations of the "Fabricate/Evaluate" traits are appreciated.


lib.rs:

This crate allows to evaluate anything that implements the network::NetworkLike trait.

See network::net for an examplatory implementation.

Networks accept any value that implements the network::NetworkIO trait.

The feature ndarray implements NetworkIO from ndarray::Array1 when enabled.

Dependencies

~3.5MB
~67K SLoC