ctuning / ck-openvino

Collective Knowledge workflows for OpenVINO Toolkit (Deep Learning Deployment Toolkit)
BSD 3-Clause "New" or "Revised" License
7 stars 7 forks source link

Calibrating SSD-MobileNet with ImageNet #22

Open psyhtest opened 4 years ago

psyhtest commented 4 years ago

SSD-MobileNet OpenVINO can be installed as follows:

$ ck install package --tags=model,tf,ssd-mobilenet,quantized,for.openvino
$ ck install package --tags=model,openvino,ssd-mobilenet

Attempting to use SSD-MobileNet via an *ssdm* command key when it's not installed, however, causes a fantastic (or rather phantasmagoric!) chain reaction involving ImageNet calibration:

$ ck run ck-openvino:program:mlperf-inference-v0.5 --cmd_key=singlestream_ssdm
...
Installing to /home/dividiti/CK-TOOLS/model-openvino-converted-from-tf-lib.openvino-pre-release-dataset.imagenet.calibration-all.500-ssd-mobilenet                                                          
######################################################################################
Converting annotations ...
/usr/bin/python3 /home/dividiti/CK-TOOLS/lib-openvino-gcc-7.5.0-pre-release-linux-64/openvino/inference-engine/tools/accuracy_checker_tool/convert_annotation.py imagenet --annotation_file /home/dividiti/C
K-TOOLS/dataset-imagenet-calibration-all.500/val_map.txt --labels_file /home/dividiti/CK-TOOLS/dataset-imagenet-ilsvrc2012-aux/synset_words.txt --has_background True --output_dir /home/dividiti/CK-TOOLS/m
odel-openvino-converted-from-tf-lib.openvino-pre-release-dataset.imagenet.calibration-all.500-ssd-mobilenet
######################################################################################
Running calibration ...
LD_LIBRARY_PATH=/home/dividiti/CK-TOOLS/lib-opencv-3.4.10-gcc-7.5.0-v3.4.10-linux-64/install/lib::/home/dividiti/CK-TOOLS/lib-openvino-gcc-7.5.0-pre-release-linux-64/lib ; /usr/bin/python3 /home/dividiti/
CK-TOOLS/lib-openvino-gcc-7.5.0-pre-release-linux-64/openvino/inference-engine/tools/calibration_tool/calibrate.py -c /home/dividiti/CK-TOOLS/model-openvino-converted-from-tf-lib.openvino-pre-release-data
set.imagenet.calibration-all.500-ssd-mobilenet/config.yml -M /home/dividiti/CK-TOOLS/lib-openvino-gcc-7.5.0-pre-release-linux-64/openvino/model-optimizer -e /home/dividiti/CK-TOOLS/lib-openvino-gcc-7.5.0-
pre-release-linux-64/lib -C /home/dividiti/CK-TOOLS/model-openvino-converted-from-tf-lib.openvino-pre-release-dataset.imagenet.calibration-all.500-ssd-mobilenet --output_dir /home/dividiti/CK-TOOLS/model-
openvino-converted-from-tf-lib.openvino-pre-release-dataset.imagenet.calibration-all.500-ssd-mobilenet
13:53:29 accuracy_checker WARNING: /home/dividiti/.local/lib/python3.6/site-packages/sklearn/utils/deprecation.py:143: FutureWarning: The sklearn.metrics.base module is  deprecated in version 0.22 and wil
l be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.metrics. Anything that cannot be imported from sklearn.metrics is now part of the private API.
  warnings.warn(message, FutureWarning)
13:53:29 openvino.tools.calibration WARNING: presenter was set to 'return_value'
Model Optimizer arguments:
Common parameters:
        - Path to the Input Model:      /home/dividiti/CK-TOOLS/model-tf-mlperf-resnet-downloaded/resnet50_v1.pb
        - Path for generated IR:        /home/dividiti/CK-TOOLS/model-openvino-converted-from-tf-lib.openvino-pre-release-dataset.imagenet.calibration-all.500-ssd-mobilenet
        - IR output name:       resnet50_v1
        - Log level:    ERROR
        - Batch:        Not specified, inherited from the model
        - Input layers:         Not specified, inherited from the model
        - Output layers:        softmax_tensor
        - Input shapes:         (1, 224, 224, 3)
        - Mean values:  Not specified
        - Scale values:         Not specified
        - Scale factor:         Not specified
        - Precision of IR:      FP32
        - Enable fusing:        True
        - Enable grouped convolutions fusing:   True
        - Move mean values to preprocess section:       False
        - Reverse input channels:       False
        - Use the config file:  None
TensorFlow specific parameters:
        - Input model in text protobuf format:  False
        - Path to model dump for TensorBoard:   None
        - List of shared libraries with TensorFlow custom layers implementation:        None
        - Update the configuration file with input/output node names:   None
        - Use configuration file used to generate the model with Object Detection API:  None
        - Operations to offload:        None
        - Patterns to offload:  None
        - Use the config file:  None
Model Optimizer version:        unknown version
[ SUCCESS ] Generated IR model.
[ SUCCESS ] Generated IR model.
[ SUCCESS ] XML file: /home/dividiti/CK-TOOLS/model-openvino-converted-from-tf-lib.openvino-pre-release-dataset.imagenet.calibration-all.500-ssd-mobilenet/resnet50_v1.xml
[ SUCCESS ] BIN file: /home/dividiti/CK-TOOLS/model-openvino-converted-from-tf-lib.openvino-pre-release-dataset.imagenet.calibration-all.500-ssd-mobilenet/resnet50_v1.bin
[ SUCCESS ] Total execution time: 11.63 seconds.
[ INFO ] CPU extensions is loaded /home/dividiti/CK-TOOLS/lib-openvino-gcc-7.5.0-pre-release-linux-64/lib/libcpu_extension.so
13:53:41 accuracy_checker WARNING: /home/dividiti/CK-TOOLS/lib-openvino-gcc-7.5.0-pre-release-linux-64/openvino/inference-engine/tools/calibration_tool/openvino/tools/calibration/base_calibrator.py:435: D
eprecationWarning: precision property of IENetLayer is deprecated. Please use precision property of DataPtr instead
  quantization_levels[layer.name] = layer.precision
13:53:41 openvino.tools.calibration INFO: Processor: x86_64
13:53:41 openvino.tools.calibration INFO: Collecting original network statistics for /home/dividiti/CK-TOOLS/model-openvino-converted-from-tf-lib.openvino-pre-release-dataset.imagenet.calibration-all.500-
ssd-mobilenet/resnet50_v1.xml...
IE version: 2.1.custom_pre-release_890bbb0bdbb3cd49e119e55b129e7a428ce2f9b0