Setup guide (for Mac / Linux)

For Windows users, jump to setup_windows

Downloading code

git clone https://github.com/mil-tokyo/webdnn

Once you learn how to use WebDNN and want to use it in your project, npm and pip packages may be useful (please note that they does not contain examples).

Installing WebGPU environment

WebDNN runs fastest on browsers which support WebGPU. Currently, only Safari 11 on macOS supports it (config needed).

If you don’t have such environment, WebGL and WebAssembly backend can be used. It is supported by most modern browsers. (Note: IE does not support WebAssembly, but asm.js code is automatically generated along with WebAssembly code, and gives similar performance.)

Installing python package

This framework requires python3.6+. Some packages need to be installed as precondition. 1.For Mac: need to install numpy; 2.For Linux: need to install setuptools;

pip3 install numpy setuptools
cd webdnn
python3 setup.py install

This will install webdnn.

If you want to convert models of Caffe or Chainer, install chainer package.

pip install chainer

(Currently, tested with chainer==2.0 and chainer==1.23)

Installing Emscripten and Eigen

If you want to enable WebAssembly backend, em++ command from Emscripten is required. You can skip this section if you try WebGPU backend only.

Before setting up Emscripten which supports WebAssembly, brew/apt-get install cmake need to be performed at first.

git clone https://github.com/juj/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest

(see also http://webassembly.org/getting-started/developers-guide/ )

To enable em++ command, you need to type command on the shell.

source ./emsdk_env.sh

Eigen is needed as the library.

wget http://bitbucket.org/eigen/eigen/get/3.3.3.tar.bz2
tar jxf 3.3.3.tar.bz2

To enable Eigen to be included on compile, make symlink to header directory (path depends on your environment).

ln -s /path/to/eigen-eigen-67e894c6cd8f/Eigen /path/to/emsdk/emscripten/*/system/local/include