GstInference - Supported backends - NCSDK

From RidgeRun Developer Connection
Jump to: navigation, search



Previous: Supported backends Index Next: Example pipelines




The NCSDK Intel® Movidius™ Neural Compute SDK (Intel® Movidius™ NCSDK) enables deployment of deep neural networks on compatible devices such as the Intel® Movidius™ Neural Compute Stick. The NCSDK includes a set of software tools to compile, profile, and validate DNNs (Deep Neural Networks) as well as APIs on C/C++ and Python for application development.

The NCSDK has two general usages:

  • Profiling, tuning, and compiling a DNN models.
  • Prototyping user applications, that run accelerated with a neural compute device hardware, using the NCAPI.

Installation

You can install the NCSDK on a system running Linux directly, downloading a Docker container, on a virtual machine or using a Python virtual environment. Al the possible installation paths are documented on the official installation guide.

Tools

mvNCCheck

Checks the validity of a Caffe or TensorFlow model on a neural compute device. The check is done by running an inference on both the device and in software and then comparing the results to determine a if the network passes or fails. This tool works best with image classification networks. You can check all the available options on the official documentation.

For example lets test the googlenet caffe model downloaded by the ncappzoo repo:

mvNCCheck -w bvlc_googlenet.caffemodel -i ../../data/images/nps_electric_guitar.png -s 12 -id 546  deploy.prototxt -S 255 -M 110
  • -w indicates the weights file
  • -i the input image
  • -s the number of shaves
  • -id the expected label id for the input image (you can find the id for any imagenet model here)
  • -S is the scaling sice
  • -M is the substracted mean after scaling

Most of these parameters are available from the model documentation. The command produces the following result:

mvNCCheck v02.00, Copyright @ Intel Corporation 2017

usage: mvNCCheck [-h] [-w WEIGHTS] [-in INPUTNODE] [-on OUTPUTNODE] [-i IMAGE]
                 [-s NSHAVES] [-is INPUTSIZE INPUTSIZE] [-S SCALE] [-M MEAN]
                 [-id EXPECTEDID] [-cs [CHANNEL_SWAP]] [-dn ] [-ec]
                 [--accuracy_adjust [ACCURACY_ADJUST]] [--ma2480]
                 [--scheduler SCHEDULER] [--new-parser] [-of SAVE_OUTPUT]
                 [-rof SAVE_REF_OUTPUT] [-metric METRIC]
                 network

mvNCCheck.py validates a Caffe or Tensorflow network on the Movidius Neural
Compute Stick

positional arguments:
  network               Network file (.prototxt, .meta, .pb, .protobuf)

optional arguments:
  -h, --help            show this help message and exit
  -w WEIGHTS            Weights file (override default same name of .protobuf)
  -in INPUTNODE         Input node name
  -on OUTPUTNODE        Output node name
  -i IMAGE              Image to process
  -s NSHAVES            Number of shaves (default 1)
  -is INPUTSIZE INPUTSIZE
                        Input size for networks that don't provide an input
                        shape, width and height expected
  -S SCALE              Scale the input by this amount, before mean
  -M MEAN               Numpy file or constant to subtract from the image,
                        after scaling
  -id EXPECTEDID        Expected output id for validation
  -cs [CHANNEL_SWAP]    default: 2,1,0 for RGB-to-BGR; no swap: 0,1,2
  -dn []                Experimental flag to run on a specified stick.
  -ec                   Force explicit concat
  --accuracy_adjust [ACCURACY_ADJUST]
                        Scale the output by this amount
  --ma2480              Dev flag
  --scheduler SCHEDULER
                        Dev flag
  --new-parser          Dev flag
  -of SAVE_OUTPUT       File name for the myriad result output in numpy
                        format.
  -rof SAVE_REF_OUTPUT  File name for the reference result in numpy format
  -metric METRIC        Metric to be used for validation. Options: top1, top5
                        or accuracy_metrics, ssd_pred_metric

mvNCCompile

mvNCProfile

API

Previous: Supported backends Index Next: Example pipelines