[CPU] NMS test for the rest of 1st & 2nd outputs. (#3351)

This commit is contained in:
Nikolay Shchegolev 2020-11-27 13:21:30 +03:00 committed by GitHub
parent 3ab3536012
commit b7d5590d72
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 2 deletions

View File

@ -400,6 +400,9 @@ public:
} }
} }
std::fill(selectedIndicesPtr, selectedIndicesPtr + (selectedBoxesNum - idx) * selectedIndicesStride, -1); std::fill(selectedIndicesPtr, selectedIndicesPtr + (selectedBoxesNum - idx) * selectedIndicesStride, -1);
if (outputs.size() > NMS_SELECTEDSCORES) {
std::fill(selectedScoresPtr, selectedScoresPtr + (selectedBoxesNum - idx) * selectedIndicesStride, -1.f);
}
if (outputs.size() > NMS_VALIDOUTPUTS) if (outputs.size() > NMS_VALIDOUTPUTS)
*valid_outputs = static_cast<int>(validOutputs); *valid_outputs = static_cast<int>(validOutputs);

View File

@ -79,12 +79,22 @@ void NmsLayerTest::Compare(const std::vector<std::vector<std::uint8_t>> &expecte
const auto &precision = actual->getTensorDesc().getPrecision(); const auto &precision = actual->getTensorDesc().getPrecision();
size_t size = expected.size() / actual->getTensorDesc().getPrecision().size(); size_t size = expected.size() / actual->getTensorDesc().getPrecision().size();
switch (precision) { switch (precision) {
case Precision::FP32: case Precision::FP32: {
LayerTestsCommon::Compare(reinterpret_cast<const float *>(expectedBuffer), reinterpret_cast<const float *>(actualBuffer), size, threshold); LayerTestsCommon::Compare(reinterpret_cast<const float *>(expectedBuffer), reinterpret_cast<const float *>(actualBuffer), size, threshold);
const auto fBuffer = lockedMemory.as<const float *>();
for (int i = size; i < actual->size(); i++) {
ASSERT_TRUE(fBuffer[i] == -1.f) << "Invalid default value: " << fBuffer[i] << " at index: " << i;
}
break; break;
case Precision::I32: }
case Precision::I32: {
LayerTestsCommon::Compare(reinterpret_cast<const int32_t *>(expectedBuffer), reinterpret_cast<const int32_t *>(actualBuffer), size, 0); LayerTestsCommon::Compare(reinterpret_cast<const int32_t *>(expectedBuffer), reinterpret_cast<const int32_t *>(actualBuffer), size, 0);
const auto iBuffer = lockedMemory.as<const int *>();
for (int i = size; i < actual->size(); i++) {
ASSERT_TRUE(iBuffer[i] == -1) << "Invalid default value: " << iBuffer[i] << " at index: " << i;
}
break; break;
}
default: default:
FAIL() << "Comparator for " << precision << " precision isn't supported"; FAIL() << "Comparator for " << precision << " precision isn't supported";
} }