MXNetJS Deep Learning in Browser
MXNetJS is the Apache MXNet Javascript package. MXNetJS brings state of art deep learning inference API to the browser. It is generated with Emscripten and MXNet Amalgamation. MXNetJS allows you to run prediction of state-of-art deep learning models in any computational graph, and brings the fun of deep learning to the client side.
Try it in your browser
This requires Python 2:
python -m SimpleHTTPServer
Then open browser http://localhost:8000/classify.html
NodeJS User:
npm install http-server -g
http-server
Then open browser http://127.0.0.1:8080/classify.html
See classify_image.js for how it works.
Speed
On Microsoft Edge and Firefox, performance is at least 8 times better than Google Chrome. We assume it is optimization difference on ASM.js.
Use Your Own Model
MXNetJS can take any model trained with mxnet, use tools/model2json.py to convert the model into json format and you are ready to go (note that only Python 2 is supported currently)
Library Code
- mxnet_predict.js contains documented library code and provides convenient APIs to use in your JS application.
- This is the API code your application should use. test_on_node.js shows an example.
- libmxnet_predict.js is automatically generated by running
./build.sh
and should not be modified by hand.
Unit Tests
test_on_node.js will exercise the forward pass inference for a few models available at the MXNet Model gallery. The model JSON files are prepared by running the script ./prepare_models.sh -all
from the ./model
folder. Currently the test exercises the following models
- InceptionBN
- SqueezeNET
- ResNET18
- NiN
Resources
Machine Eye -http://rupeshs.github.io/machineye/ Web service for local image file/image URL classification without uploading.
Contrbute to MXNetJS
Contribution is more than welcomed!