Skip to content

EvoLib/evo-net

Repository files navigation

EvoNet

Code Quality & Tests License: MIT Project Status: Alpha

EvoNet is a modular and evolvable neural network core designed for integration with EvoLib. It supports dynamic topologies, recurrent connections, per-neuron activation, and structural evolution – with a strong emphasis on clarity, transparency, and didactic value.


Features

  • Layer-based but flexible – allows skip connections, cycles, and recurrent paths
  • Typed neuron roles and connection types (NeuronRole, ConnectionType)
  • Topology-aware mutation system – add/remove neurons and connections, mutate weights, change activations
  • Per-neuron activation functions – configurable, extensible, evolvable
  • 1-step recurrent state logic – avoids multi-pass stabilization
  • Topology can grow at runtime – with add_neuron, add_connection, split_connection
  • Debug-friendly architecture – explicit IDs, labels, roles, directional graphs
  • Designed for evolutionary learning – mutation, crossover, speciation ready
  • Lightweight & extensible – pure Python, NumPy-based, no hard dependencies

⚠️ This project is in early development (alpha). Interfaces and structure may change.


Quick Example

from evonet.core import Nnet

net = Nnet()
net.add_layer()  # Input
net.add_layer()  # Output

net.add_neuron(layer_idx=0, activation="linear", lable="in")
net.add_neuron(layer_idx=1, activation="linear", bias=0.5, lable="out", connect_layer=True)

print(net.calc([1.0]))

License

MIT License - see MIT License.

About

A lightweight, evolvable neural network core.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages