1.0.14 • Published 5 years ago

neat_net-js v1.0.14

Weekly downloads
9
License
MIT
Repository
github
Last release
5 years ago

NEAT-JS

NeuroEvolution of Augmenting Topologies (NEAT) is a genetic algorithm (GA) for the generation of evolving artificial neural networks.

code coverage license issues

Getting Started:

Setting up the library:

If you are using Node.js you can import this library like so:

let { NEAT, activation, crossover, mutate } = require('neat_net-js');

If you are planning to use this library on the browser:

<script language="javascript" type="text/javascript" src="./lib/NEAT_browser.js"></script>

Basic Usage:

The basic usage of this library is as follows.

let config = {
	model: [
		{nodeCount: 5, type: "input"},
		{nodeCount: 1, type: "output", activationfunc: activation.RELU}
	],
	mutationRate: 0.05,
	crossoverMethod: crossover.RANDOM,
	mutationMethod: mutate.RANDOM,
	populationSize: 10
};


let neat = new NEAT(config);

Config parameters:

model: Defines the model your creatures are going to use.
mutationRate: Sets the mutation chance of the creatures. (Default: 0.05)
crossoverMethod: Sets the crossover method. (crossover.RANDOM or crossover.SLICE) (Default: crossover.RANDOM)
mutationMethod: Sets the mutation method. (only mutate.RANDOM for now) (Default: mutate.RANDOM)
populationSize: Sets the population size. (Default: 500)

Functions:

neat.doGen(); // Does one generation with mutation and crossover.
neat.setFitness(fitness, index); { // Sets a creature's score. This will then be normalized for actual fitness value.
neat.bestCreature(); // Returns the best creature from the last generation.
neat.setInputs(array, index); // Sets the inputs of the creature indexed as "index".
neat.getDesicions(); // Returns every creature's desicion in an array.
neat.feedForward();  // Feeds forward every creatıre's neural network.
neat.export(); // Exports all creatures for later training (See import() below) You can also pass an index to this function.
neat.import(data); // Imports creature(s) previously exported.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago