All Projects â†’ liquidcarrot â†’ Carrot

liquidcarrot / Carrot

Licence: other
đŸĨ• Evolutionary Neural Networks in JavaScript

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Carrot

Brain.js
brain.js is a GPU accelerated library for Neural Networks written in JavaScript.
Stars: ✭ 12,358 (+4634.87%)
Mutual labels:  easy-to-use, recurrent-neural-networks, browser
Lstm anomaly thesis
Anomaly detection for temporal data using LSTMs
Stars: ✭ 178 (-31.8%)
Mutual labels:  neural-networks, lstm, recurrent-neural-networks
Ntm One Shot Tf
One Shot Learning using Memory-Augmented Neural Networks (MANN) based on Neural Turing Machine architecture in Tensorflow
Stars: ✭ 238 (-8.81%)
Mutual labels:  neural-networks, lstm
Deepjazz
Deep learning driven jazz generation using Keras & Theano!
Stars: ✭ 2,766 (+959.77%)
Mutual labels:  neural-networks, lstm
datastories-semeval2017-task6
Deep-learning model presented in "DataStories at SemEval-2017 Task 6: Siamese LSTM with Attention for Humorous Text Comparison".
Stars: ✭ 20 (-92.34%)
Mutual labels:  recurrent-neural-networks, lstm
Deep Learning With Python
Deep learning codes and projects using Python
Stars: ✭ 195 (-25.29%)
Mutual labels:  neural-networks, recurrent-neural-networks
Echotorch
A Python toolkit for Reservoir Computing and Echo State Network experimentation based on pyTorch. EchoTorch is the only Python module available to easily create Deep Reservoir Computing models.
Stars: ✭ 231 (-11.49%)
Mutual labels:  neural-networks, recurrent-neural-networks
LSTM-Time-Series-Analysis
Using LSTM network for time series forecasting
Stars: ✭ 41 (-84.29%)
Mutual labels:  recurrent-neural-networks, lstm
Deep Spying
Spying using Smartwatch and Deep Learning
Stars: ✭ 172 (-34.1%)
Mutual labels:  neural-networks, recurrent-neural-networks
sequence-rnn-py
Sequence analyzing using Recurrent Neural Networks (RNN) based on Keras
Stars: ✭ 28 (-89.27%)
Mutual labels:  recurrent-neural-networks, lstm
SpeakerDiarization RNN CNN LSTM
Speaker Diarization is the problem of separating speakers in an audio. There could be any number of speakers and final result should state when speaker starts and ends. In this project, we analyze given audio file with 2 channels and 2 speakers (on separate channels).
Stars: ✭ 56 (-78.54%)
Mutual labels:  recurrent-neural-networks, lstm
automatic-personality-prediction
[AAAI 2020] Modeling Personality with Attentive Networks and Contextual Embeddings
Stars: ✭ 43 (-83.52%)
Mutual labels:  recurrent-neural-networks, lstm
sgrnn
Tensorflow implementation of Synthetic Gradient for RNN (LSTM)
Stars: ✭ 40 (-84.67%)
Mutual labels:  recurrent-neural-networks, lstm
Coursera Deep Learning Specialization
Notes, programming assignments and quizzes from all courses within the Coursera Deep Learning specialization offered by deeplearning.ai: (i) Neural Networks and Deep Learning; (ii) Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization; (iii) Structuring Machine Learning Projects; (iv) Convolutional Neural Networks; (v) Sequence Models
Stars: ✭ 188 (-27.97%)
Mutual labels:  neural-networks, recurrent-neural-networks
Stock Price Prediction Lstm
OHLC Average Prediction of Apple Inc. Using LSTM Recurrent Neural Network
Stars: ✭ 232 (-11.11%)
Mutual labels:  neural-networks, recurrent-neural-networks
dts
A Keras library for multi-step time-series forecasting.
Stars: ✭ 130 (-50.19%)
Mutual labels:  recurrent-neural-networks, lstm
Ncrfpp
NCRF++, a Neural Sequence Labeling Toolkit. Easy use to any sequence labeling tasks (e.g. NER, POS, Segmentation). It includes character LSTM/CNN, word LSTM/CNN and softmax/CRF components.
Stars: ✭ 1,767 (+577.01%)
Mutual labels:  neural-networks, lstm
Emotion Recognition Using Speech
Building and training Speech Emotion Recognizer that predicts human emotions using Python, Sci-kit learn and Keras
Stars: ✭ 159 (-39.08%)
Mutual labels:  neural-networks, recurrent-neural-networks
keras-malicious-url-detector
Malicious URL detector using keras recurrent networks and scikit-learn classifiers
Stars: ✭ 24 (-90.8%)
Mutual labels:  recurrent-neural-networks, lstm
CS231n
PyTorch/Tensorflow solutions for Stanford's CS231n: "CNNs for Visual Recognition"
Stars: ✭ 47 (-81.99%)
Mutual labels:  recurrent-neural-networks, lstm

Carrot Logo

Build Status via Travis CI Codacy Badge Coverage Status Join the chat on Discord at https://discord.gg/P4FJG8rEYC Carrot's License Made with love

ℹī¸ The new TypeScript version is coming! If you would like to try the expiremental version please clone the repository and checkout the typescript branch of the project. Docs for this new version can temporarily be found here

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)
  • Preconfigured GRU, LSTM, NARX Networks
  • Mutable Neurons, Layers, Groups, and Networks
  • SVG Network Visualizations using D3.js

Demos

flappy bird neuro-evolution demo
Flappy bird neuro-evolution

Install

$ npm i @liquid-carrot/carrot

Carrot files are hosted by JSDelivr

For prototyping or learning, use the latest version here:

<script src="https://cdn.jsdelivr.net/npm/@liquid-carrot/carrot/dist/carrot.umd2.min.js"></script>

For production, link to a specific version number to avoid unexpected breakage from newer versions:

<script src="https://cdn.jsdelivr.net/npm/@liquid-carrot/[email protected]/dist/carrot.umd2.min.js"></script>

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:

perceptron.

How to build it with Carrot:

let { architect } = require('@liquid-carrot/carrot');

// The example Perceptron you see above with 4 inputs, 5 hidden, and 1 output neuron
let simplePerceptron = new architect.Perceptron(4, 5, 1);

Building networks is easy with 6 built-in networks

let { architect } = require('@liquid-carrot/carrot');

let LSTM = new architect.LSTM(4, 5, 1);

// Add as many hidden layers as needed
let Perceptron = new architect.Perceptron(4, 5, 20, 5, 10, 1);

Building custom network architectures

let architect = require('@liquid-carrot/carrot').architect
let Layer = require('@liquid-carrot/carrot').Layer

let input = new Layer.Dense(1);
let hidden1 = new Layer.LSTM(5);
let hidden2 = new Layer.GRU(1);
let output = new Layer.Dense(1);

// connect however you want
input.connect(hidden1);
hidden1.connect(hidden2);
hidden2.connect(output);

let network = architect.Construct([input, hidden1, hidden2, output]);

Networks also shape themselves with neuro-evolution

let { Network, methods } = require('@liquid-carrot/carrot');

// this network learns the XOR gate (through neuro-evolution)
async function execute () {
  // no hidden layers...
   var network = new Network(2,1);

   // XOR dataset
   var trainingSet = [
       { input: [0,0], output: [0] },
       { input: [0,1], output: [1] },
       { input: [1,0], output: [1] },
       { input: [1,1], output: [0] }
   ];

   await network.evolve(trainingSet, {
       mutation: methods.mutation.FFW,
       equal: true,
       error: 0.05,
       elitism: 5,
       mutation_rate: 0.5
   });

   // and it works!
   network.activate([0,0]); // 0.2413
   network.activate([0,1]); // 1.0000
   network.activate([1,0]); // 0.7663
   network.activate([1,1]); // 0.008
}

execute();

Build vanilla neural networks

let Network = require('@liquid-carrot/carrot').Network

let network = new Network([2, 2, 1]) // Builds a neural network with 5 neurons: 2 + 2 + 1

Or implement custom algorithms with neuron-level control

let Node = require('@liquid-carrot/carrot').Node

let A = new Node() // neuron
let B = new Node() // neuron

A.connect(B)
A.activate(0.5)
console.log(B.activate())

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):

🤔 👀 📖 🚇
Daniel Ryan

🐛 👀

IviieMtz

⚠ī¸

Nicholas Szerman

đŸ’ģ

tracy collins

🐛
🤔

This project follows the all-contributors specification. Contributions of any kind welcome!

đŸ’Ŧ Contributing

Carrot's GitHub Issues

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 Numbers

Patrons

Carrot's Patrons

Become a Patron

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].