summaryrefslogtreecommitdiff
path: root/nn/common/operations/Broadcast.cpp
diff options
context:
space:
mode:
authorPrzemyslaw Szczepaniak <pszczepaniak@google.com>2019-05-02 16:01:58 +0100
committerPrzemyslaw Szczepaniak <pszczepaniak@google.com>2019-05-03 10:17:10 +0100
commit8103fb41e0c4d7f8f9a5a557052bb866e123c9ab (patch)
treeb17ead497918ae1ac4ff6d62524a6a35275816db /nn/common/operations/Broadcast.cpp
parent9bf18b65d7dc3633a2ba06ae6db7044c603ad08f (diff)
downloadml-8103fb41e0c4d7f8f9a5a557052bb866e123c9ab.tar.gz
Validate quant MUL constraint 'outputScale > input1Scale * input2Scale'
Bug: 130169097 Test: NeuralNetworkTest_static Change-Id: Ia4a71c5485a18083021b8bb77595e0ab8edd111a Merged-In: Ia4a71c5485a18083021b8bb77595e0ab8edd111a (cherry picked from commit af11ff40401be44a0dd4220457c032a0667fffd3)
Diffstat (limited to 'nn/common/operations/Broadcast.cpp')
-rw-r--r--nn/common/operations/Broadcast.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/nn/common/operations/Broadcast.cpp b/nn/common/operations/Broadcast.cpp
index a575a7e5a..25706720e 100644
--- a/nn/common/operations/Broadcast.cpp
+++ b/nn/common/operations/Broadcast.cpp
@@ -363,6 +363,12 @@ bool validate(OperationType opType, const IOperationValidationContext* context)
NN_RET_CHECK(validateHalVersion(context, std::max(HalVersion::V1_2, opIntroducedAt)));
} else if (opType == OperationType::DIV) {
NN_RET_CHECK_FAIL() << "Unsupported tensor type for operation DIV";
+ } else if (opType == OperationType::MUL) {
+ Shape output = context->getOutputShape(kOutputTensor);
+ Shape input1 = context->getInputShape(kInputTensor1);
+ Shape input2 = context->getInputShape(kInputTensor2);
+ NN_RET_CHECK_GT(output.scale, input1.scale * input2.scale);
+ NN_RET_CHECK(validateHalVersion(context, std::max(HalVersion::V1_0, opIntroducedAt)));
} else {
NN_RET_CHECK(validateHalVersion(context, std::max(HalVersion::V1_0, opIntroducedAt)));
}