[CPU] NMS. Fill the rest of first out blob. (#3258)

This commit is contained in:
Nikolay Shchegolev 2020-11-22 20:06:33 +03:00 committed by GitHub
parent ff1046c0e1
commit 92ec30c54b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -379,13 +379,15 @@ public:
});
}
size_t validOutputs = std::min(filtBoxes.size(), static_cast<size_t>(outputs[NMS_SELECTEDINDICES]->getTensorDesc().getDims()[0]));
const size_t selectedBoxesNum = outputs[NMS_SELECTEDINDICES]->getTensorDesc().getDims()[0];
const size_t validOutputs = std::min(filtBoxes.size(), selectedBoxesNum);
int selectedIndicesStride = outputs[NMS_SELECTEDINDICES]->getTensorDesc().getBlockingDesc().getStrides()[0];
int *selectedIndicesPtr = selected_indices;
float *selectedScoresPtr = selected_scores;
for (size_t idx = 0; idx < validOutputs; idx++) {
size_t idx = 0lu;
for (; idx < validOutputs; idx++) {
selectedIndicesPtr[0] = filtBoxes[idx].batch_index;
selectedIndicesPtr[1] = filtBoxes[idx].class_index;
selectedIndicesPtr[2] = filtBoxes[idx].box_index;
@ -397,6 +399,7 @@ public:
selectedScoresPtr += selectedIndicesStride;
}
}
std::fill(selectedIndicesPtr, selectedIndicesPtr + (selectedBoxesNum - idx) * selectedIndicesStride, -1);
if (outputs.size() > NMS_VALIDOUTPUTS)
*valid_outputs = static_cast<int>(validOutputs);