Skip to content

Reject softmax if dim > 65535 which not supported#75

Open
sunshinemyson wants to merge 1 commit into
vsi_nnapi_delegate_v2.4.0from
fix_softmax
Open

Reject softmax if dim > 65535 which not supported#75
sunshinemyson wants to merge 1 commit into
vsi_nnapi_delegate_v2.4.0from
fix_softmax

Conversation

@sunshinemyson

Copy link
Copy Markdown

Signed-off-by: xiang.zhang xiang.zhang@verisilicon.com

Signed-off-by: xiang.zhang <xiang.zhang@verisilicon.com>
@xiaofengren

xiaofengren commented Oct 15, 2021

Copy link
Copy Markdown

Hello Xiang
We tried this patch on our side and it report build failure, like as followings:

nnapi_delegate.cc:1870:23: error: 'begin' was not declared in this scope; did you mean 'std::begin'?
| 1870 | for(auto d : input.dims) {

So we made below changes for your patch and verified it, the issue was fixed. Here is our patch:
diff --git a/tensorflow/lite/delegates/nnapi/nnapi_delegate.cc b/tensorflow/lite/delegates/nnapi/nnapi_delegate.cc
index e1de9e9d289..5a02db7279a 100644
--- a/tensorflow/lite/delegates/nnapi/nnapi_delegate.cc
+++ b/tensorflow/lite/delegates/nnapi/nnapi_delegate.cc
@@ -2075,8 +2075,12 @@ bool NNAPIDelegateKernel::Validate(
"Output type should be one of kTfLiteFloat32, kTfLiteUInt8, "
"kTfLiteInt8.",
&val_ctx);
- const auto& input = context->tensors[node->inputs->data[0]];
- const int input_rank = input.dims->size;
+ auto input_dims = context->tensors[node->inputs->data[0]].dims;
+ if (input_dims->data[1] > 65536 || input_dims->data[2] > 65536) {
+ Expect(input_dims->data[1] < 65535, NNAPIValidationFailureType::kUnsupportedOperandSize, "Input dimension larger than 65535", &val_ctx);
+ Expect(input_dims->data[2] < 65535, NNAPIValidationFailureType::kUnsupportedOperandSize, "Input dimension larger than 65535", &val_ctx);
+ }
+ const int input_rank = input_dims->size;
Expect(input_rank <= 4,
NNAPIValidationFailureType::kUnsupportedOperandRank,
"Input rank should be <= 4", &val_ctx);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants