aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry Ge <jerry.ge@arm.com>2022-07-22 10:29:13 -0700
committerEric Kunze <eric.kunze@arm.com>2022-08-02 21:22:45 +0000
commit9391243d1c24d5a4e3c227ba9e3689cdb12d3e60 (patch)
tree840b0f7be23d0bdad76c41e391536c4551f71bf0
parent5a30f9b18665f3f98c43f52519407434df171a4f (diff)
downloadreference_model-9391243d1c24d5a4e3c227ba9e3689cdb12d3e60.tar.gz
Added framework tests for Relu1 Operator legalization
Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I36ea46e79a0ce42c2dbe47c816b5b5572058c0f2
-rw-r--r--verif/frameworks/test_builder.py10
-rwxr-xr-xverif/frameworks/tosa_verif_framework_generator.py8
2 files changed, 18 insertions, 0 deletions
diff --git a/verif/frameworks/test_builder.py b/verif/frameworks/test_builder.py
index a47cf5c..97b9085 100644
--- a/verif/frameworks/test_builder.py
+++ b/verif/frameworks/test_builder.py
@@ -76,6 +76,16 @@ class TBuilder:
def eval(self, a):
return tf.nn.relu(a, name=self.result_name)
+ class Relu1:
+ def __init__(self, name):
+ self.result_name = name
+
+ def eval(self, a):
+ # TF doesn't have relu_n1_to_1 operator,
+ # use min and max as a workaround
+ # alternatively, we can use clip_by_value
+ return tf.math.minimum(1.0, tf.math.maximum(-1.0, a))
+
class Relu6:
def __init__(self, name):
self.result_name = name
diff --git a/verif/frameworks/tosa_verif_framework_generator.py b/verif/frameworks/tosa_verif_framework_generator.py
index 3b5d012..8d8b155 100755
--- a/verif/frameworks/tosa_verif_framework_generator.py
+++ b/verif/frameworks/tosa_verif_framework_generator.py
@@ -111,6 +111,14 @@ TF_OP_LIST = {
),
},
},
+ "relu1": {
+ "operands": (1, 0),
+ "build_fcn": (TBuilder.Relu1, TGen.tgBasic, ArgGen.agNone),
+ "types": {
+ "tf": [],
+ "tflite": list(TYPE_F + [QuantType.ALL_U8, QuantType.ALL_I8]),
+ },
+ },
"relu6": {
"operands": (1, 0),
"build_fcn": (TBuilder.Relu6, TGen.tgBasic, ArgGen.agNone),