openvinotoolkit / openvino

OpenVINO™ is an open-source toolkit for optimizing and deploying AI inference
https://docs.openvino.ai
Apache License 2.0
7.34k stars 2.29k forks source link

warnings when running YOLOV3 #1118

Closed TNTWEN closed 4 years ago

TNTWEN commented 4 years ago

hello! warning like this DeprecationWarning: shape property of IENetLayer is deprecated. Please use shape property of DataPtr instead objects returned by in_data or out_data property to access shape of input or output data on corresponding ports out_blob = out_blob.reshape(net.layers[net.layers[layer_name].parents[0]].shape) happens when i run YOLOV3.Although it does not affect the operation of the program,but it will print every frame.maybe it will slow the program(more YOLO parsing time). I want to know what I can do to get rid of this warning.

by the way ,my yolov3(CPU/GPU) Inference time almost 1 ms,but YOLO parsing time takes 50-60ms. Is there a way to optimize YOLO parsing time futher

TNTWEN commented 4 years ago

and i use openvino 2020.1

brmarkus commented 4 years ago

May I ask you to describe your environment, please? You installed OpenVINO 2020.1 - natively (which Operating system, which SOC, using CPU, GPU, VPU?) or in a container? Do you use one of the OpenVINO/OpenModelZoo examples, if yes, which one, which command line, which exact network in which precision, which version? Can you describe how you got the warnings so that we could try to reproduce?

TNTWEN commented 4 years ago

ubuntu 16.04 python 3.5.2 openvino 2020.1 CPU intel i5-8250U GPU UHD620 warning will happen on both CPU and GPU

https://docs.openvinotoolkit.org/2020.1/ie_python_api/classie__api_1_1IENetLayer.html the api allso mentioned this warning

https://docs.openvinotoolkit.org/2020.1/ie_python_api/classie__api_1_1DataPtr.html but the api doesn't describe DataPtr 's usage in detail .

I don’t know if DataPtr is used to replace IENetLayerin the latest version of yolov3 OpenVINO

brmarkus commented 4 years ago

Do you use one of the OpenVINO/OpenModelZoo samples and see the warning or only with your own code? Can you try the sample "object_detection_demo_yolov3_async.py", as described here "https://docs.openvinotoolkit.org/latest/_demos_python_demos_object_detection_demo_yolov3_async_README.html"?

TNTWEN commented 4 years ago

here is the output of "/opt/intel/openvino_2020.1.023/deployment_tools/open_model_zoo/demos/python_demos/object_detection_demo_yolov3_async/object_detection_demo_yolov3_async.py" with my own model(two classes) [ INFO ] Layer detector/yolo-v3/Conv_14/BiasAdd/YoloRegion parameters: [ INFO ] classes : 2 [ INFO ] num : 3 [ INFO ] coords : 4 [ INFO ] anchors : [30.0, 61.0, 62.0, 45.0, 59.0, 119.0] /opt/intel/openvino_2020.1.023/deployment_tools/open_model_zoo/demos/python_demos/object_detection_demo_yolov3_async/object_detection_demo_yolov3_async.py:276: DeprecationWarning: shape property of IENetLayer is deprecated. Please use shape property of DataPtr instead objects returned by in_data or out_data property to access shape of input or output data on corresponding ports out_blob = out_blob.reshape(net.layers[net.layers[layer_name].parents[0]].shape) [ INFO ] Layer detector/yolo-v3/Conv_22/BiasAdd/YoloRegion parameters: [ INFO ] classes : 2 [ INFO ] num : 3 [ INFO ] coords : 4 [ INFO ] anchors : [10.0, 13.0, 16.0, 30.0, 33.0, 23.0] /opt/intel/openvino_2020.1.023/deployment_tools/open_model_zoo/demos/python_demos/object_detection_demo_yolov3_async/object_detection_demo_yolov3_async.py:276: DeprecationWarning: shape property of IENetLayer is deprecated. Please use shape property of DataPtr instead objects returned by in_data or out_data property to access shape of input or output data on corresponding ports out_blob = out_blob.reshape(net.layers[net.layers[layer_name].parents[0]].shape) .......... .......... ..........

brmarkus commented 4 years ago

OK, I can reproduce it when downloading Yolo-V3 and converting it to IR:

python3 object_detection_demo_yolov3_async.py -i "cam" -m /openvino_models/YoloV3/experiments/tensorflow-yolo-v3/FP32/frozen_darknet_yolov3_model.xml -d "CPU"
...
object_detection_demo_yolov3_async.py:274: DeprecationWarning: shape property of IENetLayer is deprecated. Please use shape property of DataPtr instead objects returned by in_data or out_data property to access shape of input or output data on corresponding ports
  out_blob = out_blob.reshape(net.layers[net.layers[layer_name].parents[0]].shape)
[ INFO ] Layer detector/yolo-v3/Conv_22/BiasAdd/YoloRegion parameters:
[ INFO ]          classes : 80
[ INFO ]          anchors : [10.0, 13.0, 16.0, 30.0, 33.0, 23.0]
[ INFO ]          num     : 3
[ INFO ]          coords  : 4
...
ilya-lavrenov commented 4 years ago

CC @akuporos

avitial commented 4 years ago

@TNTWEN this seems to be addressed in https://github.com/opencv/open_model_zoo/pull/1225. As you are in v2020.1, please try changing change line 276 to out_blob = out_blob.reshape(net.layers[net.layers[layer_name].parents[0]].out_data[0].shape) in object_detection_demo_yolov3_async.py script and see if DeprecationWarning persists.

TNTWEN commented 4 years ago

@avitial wow,it works!! I also deleted all the logs, and now nothing will print in the terminal.with my own model on cpu platform,the Inference time takes almost 0.9 ms,and YOLO parsing time takes 30ms when the input is cam or *.avi. Compared with printing warnings and logs all the time,the YOLO parsing time takes 30ms less!It's a huge upgrade.