Top Sponsors
Solinfra |
---|
Carrot is an architecture-free neural network library built around neuroevolution
Why / when should I use this?
Whenever you have a problem that you:
- Don't know how-to solve
- Don't want to design a custom network for
- Want to discover the ideal neural-network structure for
You can use Carrot's ability to design networks of arbitrary complexity by itself to solve whatever problem you have. If you want to see Carrot designing a neural-network to play flappy-bird check here
For Documentation, visit here
Key Features
- Simple docs & interactive examples
- Neuro-evolution & population based training
- Multi-threading & GPU (coming soon)
- Complete customizable Networks with various types of layers
- Mutable Neurons, Connections, Layers, and Networks
Demos
Install
$ npm i @liquid-carrot/carrot
Carrot files are hosted by JSDelivr
For prototyping or learning, use the latest version here:
For production, link to a specific version number to avoid unexpected breakage from newer versions:
Getting Started
💡 Want to be super knowledgeable about neuro-evolution in a few minutes?
Check out this article by the creator of NEAT, Kenneth Stanley
💡 Curious about how neural-networks can understand speech and video?
Check out this video on Recurrent Neural Networks, from @LearnedVector, on YouTube
This is a simple perceptron:
.
How to build it with Carrot:
const architect = ; architect;architect;architect; const network = architect;
Building networks is easy with 17 built-in layers You can combine them as you need.
const architect = ; architect;architect;architect;architect; const network = architect;
Networks also shape themselves with neuro-evolution
const XOR = input: 0 0 output: 0 input: 0 1 output: 1 input: 1 0 output: 1 input: 1 1 output: 0 ; // this network learns the XOR gate (through neuro-evolution): Promise<void> { this; const network: Network = 2 1; const initial: number = network; await network; const final: number = network; tobeat;} ;
Or implement custom algorithms with neuron-level control
let Node = Node; let A = ; // neuronlet B = ; // neuron A;A;console;
Try with
Data Sets
Contributors ✨
This project exists thanks to all the people who contribute. We can't do it without you! 🙇
Thanks goes to these wonderful people (emoji key):
Luis Carbonell 💻 🤔 👀 📖 |
Christian Echevarria 💻 📖 🚇 |
Daniel Ryan 🐛 👀 |
IviieMtz ⚠️ |
Nicholas Szerman 💻 |
tracy collins 🐛 |
Manuel Raimann 🐛 💻 🤔 |
This project follows the all-contributors specification. Contributions of any kind welcome!
💬 Contributing
Your contributions are always welcome! Please have a look at the contribution guidelines first. 🎉
To build a community welcome to all, Carrot follows the Contributor Covenant Code of Conduct.
And finally, a big thank you to all of you for supporting! 🤗
Planned Features
* [ ] Performance Enhancements * [ ] GPU Acceleration * [ ] Tests * [ ] Benchmarks * [ ] Matrix Multiplications * [ ] Tests * [ ] Benchmarks * [ ] Clustering | Multi-Threading * [ ] Tests * [ ] Benchmarks * [ ] Syntax Support * [ ] Callbacks * [ ] Promises * [ ] Streaming * [ ] Async/Await * [ ] Math Support * [ ] Big Numbers * [ ] Small NumbersPatrons
Silver Patrons |
---|
Solinfra |
Bronze Patrons |
---|
Kappaxbeta |
Patrons |
---|
DollarBizClub |
Acknowledgements
A special thanks to:
@wagenaartje for Neataptic which was the starting point for this project
@cazala for Synaptic which pioneered architecture free neural networks in javascript and was the starting point for Neataptic
@robertleeplummerjr for GPU.js which makes using GPU in JS easy and Brain.js which has inspired Carrot's development