This is the code demonstrated in this video by Siraj Raval on Youtube. Modify the default neural network in some way on a custom track. If the car is still able to learn, congratulations you just built a Self Driving Car! Submit your GitHub repository in the Youtube comments section of the video. The winner gets a shoutout in my next video!
neurojs is a JavaScript framework for deep learning in the browser. It mainly focuses on reinforcement learning, but can be used for any neural network based task. It contains neat demos to visualise these capabilities, for instance a 2D self-driving car.
Feel free to contribute. The development on such projects is more awesome in a community!
Note: this repo is no longer maintained since more general frameworks such as TensorFlow-JS emerged, which I recommend you to use.
- Implements a full-stack neural-network based machine learning framework
- Extended reinforcement-learning support
- Uniform and prioritised replay buffers
- Advantage-learning (increasing the action-gap) https://arxiv.org/pdf/1512.04860v1.pdf
- Support for deep-q-networks and actor-critic models (via deep-deterministic-policy-gradients)
- Binary import and export of network configurations (weights etc.)
- High-performance
- Self-driving car
- Advanced XOR
- Andrej Karpathy's Waterworld (ConvNetJS replaced with NeuroJS)
npm install --force
npm start
Open http://localhost:8080/examples/
in your browser and select the demo you want to run.
- More examples (pong, pendulum, snake,improved cars, etc.)
- Support for web workers
- LSTM and backpropagation through time