diff --git a/onnxruntime/core/providers/nnapi/nnapi_builtin/builders/model_builder.cc b/onnxruntime/core/providers/nnapi/nnapi_builtin/builders/model_builder.cc index a2ba35b582..1aa179acd6 100644 --- a/onnxruntime/core/providers/nnapi/nnapi_builtin/builders/model_builder.cc +++ b/onnxruntime/core/providers/nnapi/nnapi_builtin/builders/model_builder.cc @@ -263,8 +263,12 @@ Status ModelBuilder::RegisterModelInputs() { shape.push_back(SafeInt(dim.dim_value())); } - ORT_RETURN_IF_NOT(GetAndroidSdkVer() >= 29 || !shape.empty(), - "0-rank input is only supported on Android API level 29+"); + // NNAPI has strict input type requirements which separates tensor inputs and scalar inputs + // For ONNX the we do not have clear line between scalar inputs and tensor inputs + // Also NNAPI treats a tensor input with empty shape as dynamic shape input + // Disable support of the scalar input (tensor input with an empty shape) for now + // TODO, add support for ONNX scalar input (tensor input with an empty shape) + ORT_RETURN_IF_NOT(!shape.empty(), "0-rank input is not currently supported, input name, ", input_name); Type type = Type::TENSOR_FLOAT32; float scale = 0.0f; diff --git a/onnxruntime/core/providers/nnapi/nnapi_builtin/nnapi_execution_provider.cc b/onnxruntime/core/providers/nnapi/nnapi_builtin/nnapi_execution_provider.cc index 1b78cddf38..60d46511b6 100644 --- a/onnxruntime/core/providers/nnapi/nnapi_builtin/nnapi_execution_provider.cc +++ b/onnxruntime/core/providers/nnapi/nnapi_builtin/nnapi_execution_provider.cc @@ -312,9 +312,10 @@ common::Status NnapiExecutionProvider::Compile(const std::vector