ConvNetJS - Deep Learning In The Browser
Written by Mike James   
Monday, 07 July 2014

ConvNetJS brings deep neural networks to your browser. It's easy to use and fast without using a GPU, which means it works almost anywhere. 

This is a project created by Andrej Karpathy, a Phd Student at Stanford, in an effort to make neural networks more accessible. No GPUs are used to make things go faster but the raw JavaScript seems to do the job very well. This is another example of how the ever increasing performance of JavaScript is making new things possible. 

ConvNETJSbanner

In this case we have a framework for creating and training your network. You can build up a network by specifying layers of various types. As one of the types is convolutional, you can build networks that recognize images. However. convolutional image recognizers aren't the only possibility and you can create general classifiers, regression prediction networks, and more. 

Once you have the network definition you can train it using backprop or to minimize a sum of squared errors to learn arbitrary data in regression applications. There is also a MagicNet training class that handles the training automatically for you. If you want to be cutting edge then you could even try out the Deep Q reinforcement learning class to see if you can learn to play games given only the outcome. 

If you just want to see neural networks in action there are nine demos that you can run in your browser. As mentioned earlier, the fact that no GPU is required means that these are very likely to work and in the browsers I've tried they work remarkably quickly. They are also very well presented. You get a graph of the error (Loss) as the network trains and you can change the usual learning parameters dynamically.  Scrolling down reveals a section that provides insights into how the network is doing the job. You can see the features being used to distinguish between the examples. Finally you get a sample of the network's performance based on what it does to a number of test cases. 

 

ConvNETJScat

You just knew there would have to be a cat involved somewhere! In this case the network is learning to reconstruct the photo from a smaller set of weights.

 

If you want to keep the network configuration you can save it as a JSON file. Similarly, if you have access to a network data you can load it as a JSON file and try it out. So, for example, if you have access to the weight data for a network trained for weeks using a GPU array you can still run the network in a browser and use it to classify things. 

The whole project is open source and you can get the code from GitHub.

A good and very useful piece of work.

convnetjsicon

Banner


Hour Of Code 2024 Is About To Kick Off
04/12/2024

This year the event that aims to provide a coding experience for all school students and anyone else who wants to join in runs between December 9th and 15th and includes new activities. Let's find out [ ... ]



Fermyon's Spin WebAssembly Version 3.0 Released
26/11/2024

The open source developer tool for building, distributing, and running serverless WebAssembly applications reaches version 3.0. What's new?


More News

 

espbook

 

Comments




or email your comment to: comments@i-programmer.info

 

Last Updated ( Monday, 07 July 2014 )