aboutsummaryrefslogtreecommitdiff
path: root/verif
diff options
context:
space:
mode:
authorTatWai Chong <tatwai.chong@arm.com>2022-06-08 12:17:14 -0700
committerEric Kunze <eric.kunze@arm.com>2022-08-10 23:12:28 +0000
commitf732609a51630c98bc3f448937988fbcf20dc854 (patch)
treec19aeb8919e4ae8db84b13559bd5858f5e785382 /verif
parent9391243d1c24d5a4e3c227ba9e3689cdb12d3e60 (diff)
downloadreference_model-f732609a51630c98bc3f448937988fbcf20dc854.tar.gz
Update TOSA resize to match specification
Attribute stride and shift are removed, and has new scale and border. Also add tests in the generator to test tf.resize with all option combinations. Signed-off-by: TatWai Chong <tatwai.chong@arm.com> Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: If0f330d04395762d2d907863235eda1532f5e1ff
Diffstat (limited to 'verif')
-rw-r--r--verif/frameworks/test_builder.py39
-rwxr-xr-xverif/frameworks/tosa_verif_framework_generator.py24
2 files changed, 63 insertions, 0 deletions
diff --git a/verif/frameworks/test_builder.py b/verif/frameworks/test_builder.py
index 97b9085..8677559 100644
--- a/verif/frameworks/test_builder.py
+++ b/verif/frameworks/test_builder.py
@@ -1021,6 +1021,45 @@ class TBuilder:
)
return tf.identity(resize, name=self.result_name)
+ # New tf resize set (align_corners, half_pixel_centers) = (false, true) by default.
+ # Test the rest option combinations here.
+ # Note that (align_corners, half_pixel_centers) = (true, true) is NOT valid.
+ class ResizeBilinearV1AlignCorners:
+ def __init__(self, name):
+ self.result_name = name
+
+ def eval(self, a):
+ out_shape = []
+ out_shape.append(a.shape[1] * 2)
+ out_shape.append(a.shape[2] * 2)
+
+ resize = tf.compat.v1.image.resize_bilinear(
+ a,
+ out_shape,
+ align_corners=True,
+ name="resize",
+ half_pixel_centers=False,
+ )
+ return tf.identity(resize, name=self.result_name)
+
+ class ResizeBilinearV1None:
+ def __init__(self, name):
+ self.result_name = name
+
+ def eval(self, a):
+ out_shape = []
+ out_shape.append(a.shape[1] * 2)
+ out_shape.append(a.shape[2] * 2)
+
+ resize = tf.compat.v1.image.resize_bilinear(
+ a,
+ out_shape,
+ align_corners=False,
+ name="resize",
+ half_pixel_centers=False,
+ )
+ return tf.identity(resize, name=self.result_name)
+
class LeftShift:
def __init__(self, shift, name):
self.shift = shift
diff --git a/verif/frameworks/tosa_verif_framework_generator.py b/verif/frameworks/tosa_verif_framework_generator.py
index 8d8b155..4167227 100755
--- a/verif/frameworks/tosa_verif_framework_generator.py
+++ b/verif/frameworks/tosa_verif_framework_generator.py
@@ -698,6 +698,30 @@ TF_OP_LIST = {
),
},
},
+ "resize_bilinear_v1_align_corners": {
+ "operands": (1, 0),
+ "build_fcn": (
+ TBuilder.ResizeBilinearV1AlignCorners,
+ TGen.tgPooling,
+ ArgGen.agNone,
+ ),
+ "types": {
+ "tf": TYPE_F,
+ "tflite": list(
+ TYPE_F + [QuantType.ALL_U8, QuantType.ALL_I8, QuantType.ALL_I16]
+ ),
+ },
+ },
+ "resize_bilinear_v1_none": {
+ "operands": (1, 0),
+ "build_fcn": (TBuilder.ResizeBilinearV1None, TGen.tgPooling, ArgGen.agNone),
+ "types": {
+ "tf": TYPE_F,
+ "tflite": list(
+ TYPE_F + [QuantType.ALL_U8, QuantType.ALL_I8, QuantType.ALL_I16]
+ ),
+ },
+ },
"left_shift": {
"operands": (1, 0),
"build_fcn": (TBuilder.LeftShift, TGen.tgBasic, ArgGen.agShift),