[CPU] proposal_onnx tensor check was added and test was disabled (#4603)

This commit is contained in:
Alexey Varyzgin 2021-03-16 11:21:57 +03:00 committed by GitHub
parent 7a533f7abf
commit 8cfb63cb56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 120 additions and 108 deletions

View File

@ -313,14 +313,30 @@ public:
StatusCode execute(std::vector<Blob::Ptr> &inputs, std::vector<Blob::Ptr> &outputs,
ResponseDesc *resp) noexcept override {
try {
if (inputs.size() != 4 || outputs.size() != 2) {
if (resp) {
std::string errorMsg = "Incorrect number of input or output edges!";
errorMsg.copy(resp->msg, sizeof(resp->msg) - 1);
THROW_IE_EXCEPTION << "Incorrect number of input or output edges!";
}
return GENERAL_ERROR;
size_t anchor_dims_size = 1;
for (size_t i = 0; i < inputs[INPUT_ANCHORS]->getTensorDesc().getDims().size(); i++) {
anchor_dims_size *= inputs[INPUT_ANCHORS]->getTensorDesc().getDims()[i];
}
size_t deltas_dims_size = 1;
for (size_t i = 0; i < inputs[INPUT_DELTAS]->getTensorDesc().getDims().size(); i++) {
deltas_dims_size *= inputs[INPUT_DELTAS]->getTensorDesc().getDims()[i];
}
if (anchor_dims_size != deltas_dims_size)
THROW_IE_EXCEPTION << "'Anchors' blob size for ONNXProposal is incompatible with 'deltas' blob size!";
size_t score_dims_size = 1;
for (size_t i = 0; i < inputs[INPUT_SCORES]->getTensorDesc().getDims().size(); i++) {
score_dims_size *= inputs[INPUT_SCORES]->getTensorDesc().getDims()[i];
}
if (deltas_dims_size != (4 * score_dims_size))
THROW_IE_EXCEPTION << "'Deltas' blob size for ONNXProposal is incompatible with 'scores' blob size!";
// Prepare memory
const float* p_deltas_item = inputs[INPUT_DELTAS]->buffer();
const float* p_scores_item = inputs[INPUT_SCORES]->buffer();
@ -330,12 +346,6 @@ public:
float* p_roi_item = outputs[OUTPUT_ROIS]->buffer();
float* p_roi_score_item = outputs[OUTPUT_SCORES]->buffer();
size_t img_info_size = 1;
for (size_t i = 0; i < inputs[INPUT_IM_INFO]->getTensorDesc().getDims().size(); i++) {
img_info_size *= inputs[INPUT_IM_INFO]->getTensorDesc().getDims()[i];
}
const int anchors_num = inputs[INPUT_SCORES]->getTensorDesc().getDims()[0];
// bottom shape: (num_anchors) x H x W
@ -398,6 +408,13 @@ public:
}
return OK;
} catch (const InferenceEngine::details::InferenceEngineException& e) {
if (resp) {
std::string errorMsg = e.what();
errorMsg.copy(resp->msg, sizeof(resp->msg) - 1);
}
return GENERAL_ERROR;
}
}
private:

View File

@ -52,7 +52,7 @@ graph {
elem_type: 1
shape {
dim {
dim_value: 16
dim_value: 36
}
dim {
dim_value: 4
@ -87,7 +87,7 @@ graph {
elem_type: 1
shape {
dim {
dim_value: 13
dim_value: 3
}
dim {
dim_value: 2

View File

@ -431,13 +431,21 @@ NGRAPH_TEST(${BACKEND_NAME}, onnx_model_experimental_detectron_generate_proposal
// im_info
test_case.add_input<float>({1.0f, 1.0f, 1.0f});
// anchors
test_case.add_input<float>({
5.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 4.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 8.0f, 1.0f, 1.0f, 1.0f, 1.0f,
test_case.add_input<float>(
{1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
});
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f});
// deltas
test_case.add_input<float>(
{1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
@ -455,26 +463,16 @@ NGRAPH_TEST(${BACKEND_NAME}, onnx_model_experimental_detectron_generate_proposal
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f});
// scores
test_case.add_input<float>(
{1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f});
test_case.add_input<float>({
5.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 4.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 8.0f, 1.0f,
});
test_case.add_expected_output<float>(
Shape{6, 4}, {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f});
test_case.add_expected_output<float>(Shape{6}, {1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f});
test_case.add_expected_output<float>(Shape{6}, {8.0f, 5.0f, 4.0f, 1.0f, 1.0f, 1.0f});
test_case.run();
}

View File

@ -1590,9 +1590,6 @@ evaluate_mvn_6_across_chanells
evaluate_mvn_6_across_batch
IE_CPU.onnx_mvn_v6
# The test randomly fails in CI (MSVC2019 Debug)
onnx_model_experimental_detectron_generate_proposals_single_image
# Issue 49621: Incorrect blob sizes for node BinaryConvolution_X
bin_convolution_2D_1batch_1channel
bin_convolution_2D_1batch_1channel_padding_pad_val_0