frame

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

NCS2 FP16 Precision on Raspberry Pi

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?

Sign In or Register to comment.