diff options
author | Przemyslaw Szczepaniak <pszczepaniak@google.com> | 2019-05-02 16:01:58 +0100 |
---|---|---|
committer | Przemyslaw Szczepaniak <pszczepaniak@google.com> | 2019-05-03 10:17:10 +0100 |
commit | 8103fb41e0c4d7f8f9a5a557052bb866e123c9ab (patch) | |
tree | b17ead497918ae1ac4ff6d62524a6a35275816db /nn/common/operations/Broadcast.cpp | |
parent | 9bf18b65d7dc3633a2ba06ae6db7044c603ad08f (diff) | |
download | ml-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.cpp | 6 |
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))); } |