Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.

NCS2 FP16 Precision on Raspberry Pi

idata
Employee
1,261 Views

Hi all,

 

I’m using the NCS2 on Raspberry. The network is Caffe based and Model Optimizer was executed with --data_type=FP16. When looking into the generated XML all the layer elements have the precision=FP16 attribute.

 

When running inferences on the Raspberry (C++ / OpenVINO) all works good when using F32 input buffers; the output of the inference are as expected.

 

However, when attempting to use FP16 the data returned is _always_ a buffer full of 0.0.

 

I’m building with g++ flag -mfp16-format=ieee. When attempting FP16 each element in the input given to the input->data() element is of type __fp16.

 

I create the input blobs with:

 

auto input = make_shared_blob<PrecisionTrait<Precision::FP32>::value_type>(inputInfoItem.second->getTensorDesc());

 

resp:

 

auto input = make_shared_blob<PrecisionTrait<Precision::FP16>::value_type>(inputInfoItem.second->getTensorDesc());

 

Prior to creating the blobs I’ve called:

 

inputInfoItem.second->setPrecision(Precision::FP32);

 

Resp:

 

inputInfoItem.second->setPrecision(Precision::FP16);

 

Any ideas of why I’m getting all zeroes as output?

 

Does openVINO require the output format to also be FP16 in this case or shout the input/output precision be independent?
0 Kudos
0 Replies
Reply