CaffeJS - Development Guide
Getting Started
Checkout the project and run npm install
in the root directory to get started. Now you can start diving into the code.
You can build your code running gulp
or using the file watcher gulp watch
.
Organization of the code
This library uses Typescript to modularize JavaScript code and use some of the cool Typescript features on top, such as classes, inheritance, fat arrow functions, etc.
You can find the source code in the src/
directory organized in 5 modules:
- Net - A fork of ConvNetJS with Caffe compatibility (considering model weights, output parameters, etc.); contains the ConvNetJS model
Net.Net
, the CaffeJS modelNet.CaffeModel
, the the Volume implementationNet.Vol
and the layersNet.Layers
- ImgJS - An image abstraction for JavaScript to avoid dealing with canvas elements and facilitate conversion to Volumes
- NumJS - An abstraction for operations on Arrays and Volumes
- Parser - A parser for converting Prototxt and Protobuf binaries into JavaScript objects
- Utils - An abstractions for utilities and visualizations, such as the GraphDrawer and ActivationDrawer
Converting *.caffemodel
files
You can use the script scripts/convert_caffemodel.py
to convert *.caffemodel
files to binary blobs which CaffeJS can load via http and parse. Unfortunately, you need to have Caffe
and pycaffe
installed to generate those files. You can as well download the prepared weights via running sh fetch_weights.sh
in the model directories.
Deploy the docs
Run gulp deploy
to build the docs-pages
folder and deploy it to Github.