Create _relaxed tests for newly added tests

New tests were added to V1_0 and V1_1 specs, but they did not have a
"_relaxed" test in V1_1.

Bug: 76434855
Test: mma
Test: NeuralNetworksTest_static
Test: VtsHalNeuralnetworksV1_0TargetTest
Test: VtsHalNeuralnetworksV1_1TargetTest
Change-Id: I13b95c526e167236ff69df8e0eb3c5c890b97932
diff --git a/runtime/test/specs/V1_1/avg_pool_float_5_relaxed.mod.py b/runtime/test/specs/V1_1/avg_pool_float_5_relaxed.mod.py
new file mode 100644
index 0000000..9386c76
--- /dev/null
+++ b/runtime/test/specs/V1_1/avg_pool_float_5_relaxed.mod.py
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 4, 1}") # input 0
+cons2 = Int32Scalar("cons2", 2)
+pad_same = Int32Scalar("pad_same", 1)
+act_none = Int32Scalar("act_none", 0)
+i3 = Output("op3", "TENSOR_FLOAT32", "{1, 1, 2, 1}") # output 0
+model = model.Operation("AVERAGE_POOL_2D", i1, pad_same, cons2, cons2, cons2, cons2, act_none).To(i3)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [0, 6, 2, 4, 3, 2, 10, 7]}
+output0 = {i3: # output 0
+          [2.75, 5.75]}
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/batch_to_space_float_1_relaxed.mod.py b/runtime/test/specs/V1_1/batch_to_space_float_1_relaxed.mod.py
new file mode 100644
index 0000000..7164203
--- /dev/null
+++ b/runtime/test/specs/V1_1/batch_to_space_float_1_relaxed.mod.py
@@ -0,0 +1,34 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4, 2, 2, 1}")
+block = Parameter("block_size", "TENSOR_INT32", "{2}", [2, 2])
+output = Output("output", "TENSOR_FLOAT32", "{1, 4, 4, 1}")
+
+model = model.Operation("BATCH_TO_SPACE_ND", i1, block).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]}
+
+output0 = {output: # output 0
+           [1, 5, 2, 6, 9, 13, 10, 14, 3, 7, 4, 8, 11, 15, 12, 16]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/batch_to_space_relaxed.mod.py b/runtime/test/specs/V1_1/batch_to_space_relaxed.mod.py
new file mode 100644
index 0000000..3836e7b
--- /dev/null
+++ b/runtime/test/specs/V1_1/batch_to_space_relaxed.mod.py
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4, 1, 1, 2}")
+block = Parameter("block_size", "TENSOR_INT32", "{2}", [2, 2])
+output = Output("output", "TENSOR_FLOAT32", "{1, 2, 2, 2}")
+
+model = model.Operation("BATCH_TO_SPACE_ND", i1, block).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.4, 2.3, 3.2, 4.1, 5.4, 6.3, 7.2, 8.1]}
+
+output0 = {output: # output 0
+           [1.4, 2.3, 3.2, 4.1, 5.4, 6.3, 7.2, 8.1]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/conv_float_2_relaxed.mod.py b/runtime/test/specs/V1_1/conv_float_2_relaxed.mod.py
new file mode 100644
index 0000000..a49f001
--- /dev/null
+++ b/runtime/test/specs/V1_1/conv_float_2_relaxed.mod.py
@@ -0,0 +1,37 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 3, 4, 1}")
+f1 = Parameter("op2", "TENSOR_FLOAT32", "{1, 3, 3, 1}", [1, 4, 7, 2, 5, 8, 3, 6, 9])
+b1 = Parameter("op3", "TENSOR_FLOAT32", "{1}", [-200])
+pad_same = Int32Scalar("pad_same", 1)
+act_relu = Int32Scalar("act_relu", 1)
+stride = Int32Scalar("stride", 1)
+output = Output("op4", "TENSOR_FLOAT32", "{1, 3, 4, 1}")
+
+model = model.Operation("CONV_2D", i1, f1, b1, pad_same, stride, stride, act_relu).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]}
+
+output0 = {output: # output 0
+           [0, 0, 0, 0, 35, 112, 157, 0, 0, 34, 61, 0]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/depthwise_conv2d_float_2_relaxed.mod.py b/runtime/test/specs/V1_1/depthwise_conv2d_float_2_relaxed.mod.py
new file mode 100644
index 0000000..b38c076
--- /dev/null
+++ b/runtime/test/specs/V1_1/depthwise_conv2d_float_2_relaxed.mod.py
@@ -0,0 +1,45 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 3, 2, 2}")
+f1 = Parameter("op2", "TENSOR_FLOAT32", "{1, 2, 2, 4}", [1, 2, 3, 4, -9, 10, -11, 12, 5, 6, 7, 8, 13, -14, 15, -16])
+b1 = Parameter("op3", "TENSOR_FLOAT32", "{4}", [1, 2, 3, 4])
+pad_valid = Int32Scalar("pad_valid", 2)
+act_none = Int32Scalar("act_none", 0)
+stride = Int32Scalar("stride", 1)
+cm = Int32Scalar("channelMultiplier", 2)
+output = Output("op4", "TENSOR_FLOAT32", "{1, 2, 1, 4}")
+
+model = model.Operation("DEPTHWISE_CONV_2D",
+                        i1, f1, b1,
+                        pad_valid,
+                        stride, stride,
+                        cm, act_none).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 7, 8,
+           3, 4, 9, 10,
+           5, 6, 11, 12]}
+# (i1 (depthconv) f1)
+output0 = {output: # output 0
+           [71, -34, 99, -20,
+            91, -26, 127, -4]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/depthwise_conv2d_float_large_2_relaxed.mod.py b/runtime/test/specs/V1_1/depthwise_conv2d_float_large_2_relaxed.mod.py
new file mode 100644
index 0000000..0d39d12
--- /dev/null
+++ b/runtime/test/specs/V1_1/depthwise_conv2d_float_large_2_relaxed.mod.py
@@ -0,0 +1,47 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 2, 4}") # depth_in = 4
+f1 = Parameter("op2", "TENSOR_FLOAT32", "{1, 2, 2, 4}", [.25, 0, 10, 100, .25, 1, 20, 100, .25, 0, 30, 100, .25, 1, 40, 100]) # depth_out = 4
+b1 = Parameter("op3", "TENSOR_FLOAT32", "{4}", [600000, 700000, 800000, 900000]) # depth_out = 4
+pad0 = Int32Scalar("pad0", 0)
+act = Int32Scalar("act", 0)
+stride = Int32Scalar("stride", 1)
+cm = Int32Scalar("channelMultiplier", 1)
+output = Output("op4", "TENSOR_FLOAT32", "{1, 1, 1, 4}")
+
+model = model.Operation("DEPTHWISE_CONV_2D",
+                        i1, f1, b1,
+                        pad0, pad0, pad0, pad0,
+                        stride, stride,
+                        cm, act).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {
+    i1: [ # input 0
+     10, 21, 100, 0,
+     10, 22, 200, 0,
+     10, 23, 300, 0,
+     10, 24, 400, 0],
+  }
+# (i1 (conv) f1) + b1
+output0 = {output: # output 0
+           [600010, 700046, 830000, 900000]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/depthwise_conv2d_float_large_2_weights_as_inputs_relaxed.mod.py b/runtime/test/specs/V1_1/depthwise_conv2d_float_large_2_weights_as_inputs_relaxed.mod.py
new file mode 100644
index 0000000..c383512
--- /dev/null
+++ b/runtime/test/specs/V1_1/depthwise_conv2d_float_large_2_weights_as_inputs_relaxed.mod.py
@@ -0,0 +1,54 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 2, 3}") # depth_in = 3
+f1 = Input("op2", "TENSOR_FLOAT32", "{1, 2, 2, 4}") # depth_out = 4
+b1 = Input("op3", "TENSOR_FLOAT32", "{4}") # depth_out = 4
+pad0 = Int32Scalar("pad0", 0)
+act = Int32Scalar("act", 0)
+stride = Int32Scalar("stride", 1)
+cm = Int32Scalar("channelMultiplier", 1)
+output = Output("op4", "TENSOR_FLOAT32", "{1, 1, 1, 4}")
+
+model = model.Operation("DEPTHWISE_CONV_2D",
+                        i1, f1, b1,
+                        pad0, pad0, pad0, pad0,
+                        stride, stride,
+                        cm, act).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {
+    i1: [ # input 0
+     10, 21, 100,
+     10, 22, 200,
+     10, 23, 300,
+     10, 24, 400],
+    f1: [
+     .25, 0, 10, 100,
+     .25, 1, 20, 100,
+     .25, 0, 30, 100,
+     .25, 1, 40, 100],
+    b1:
+    [600000, 700000, 800000, 900000]
+  }
+# (i1 (conv) f1) + b1
+output0 = {output: # output 0
+           [600010, 700046, 830000, 900000]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/depthwise_conv2d_float_relaxed.mod.py b/runtime/test/specs/V1_1/depthwise_conv2d_float_relaxed.mod.py
new file mode 100644
index 0000000..cd71a10
--- /dev/null
+++ b/runtime/test/specs/V1_1/depthwise_conv2d_float_relaxed.mod.py
@@ -0,0 +1,52 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 3, 3, 2}")
+f1 = Parameter("op2", "TENSOR_FLOAT32", "{1, 2, 2, 4}", [.25, 0, .2, 0, .25, 0, 0, .3, .25, 0, 0, 0, .25, .1, 0, 0])
+b1 = Parameter("op3", "TENSOR_FLOAT32", "{4}", [1, 2, 3, 4])
+pad0 = Int32Scalar("pad0", 0)
+act = Int32Scalar("act", 0)
+stride = Int32Scalar("stride", 1)
+cm = Int32Scalar("channelMultiplier", 2)
+output = Output("op4", "TENSOR_FLOAT32", "{1, 2, 2, 4}")
+
+model = model.Operation("DEPTHWISE_CONV_2D",
+                        i1, f1, b1,
+                        pad0, pad0, pad0, pad0,
+                        stride, stride,
+                        cm, act).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [10, 21, 10, 22, 10, 23,
+           10, 24, 10, 25, 10, 26,
+           10, 27, 10, 28, 10, 29]}
+# (i1 (conv) f1) + b1
+# filter usage:
+#   in_ch1 * f_1  --> output_d1
+#   in_ch1 * f_2  --> output_d2
+#   in_ch2 * f_3  --> output_d3
+#   in_ch3 * f_4  --> output_d4
+output0 = {output: # output 0
+           [11, 3, 7.2, 10.6,
+            11, 3, 7.4, 10.9,
+            11, 3, 7.8, 11.5,
+            11, 3, 8.0, 11.8]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/depthwise_conv2d_float_weights_as_inputs_relaxed.mod.py b/runtime/test/specs/V1_1/depthwise_conv2d_float_weights_as_inputs_relaxed.mod.py
new file mode 100644
index 0000000..404a28c
--- /dev/null
+++ b/runtime/test/specs/V1_1/depthwise_conv2d_float_weights_as_inputs_relaxed.mod.py
@@ -0,0 +1,59 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 3, 3, 2}")
+f1 = Input("op2", "TENSOR_FLOAT32", "{1, 2, 2, 4}")
+b1 = Input("op3", "TENSOR_FLOAT32", "{4}")
+pad0 = Int32Scalar("pad0", 0)
+act = Int32Scalar("act", 0)
+stride = Int32Scalar("stride", 1)
+cm = Int32Scalar("channelMultiplier", 2)
+output = Output("op4", "TENSOR_FLOAT32", "{1, 2, 2, 4}")
+
+model = model.Operation("DEPTHWISE_CONV_2D",
+                        i1, f1, b1,
+                        pad0, pad0, pad0, pad0,
+                        stride, stride,
+                        cm, act).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [10, 21, 10, 22, 10, 23,
+           10, 24, 10, 25, 10, 26,
+           10, 27, 10, 28, 10, 29],
+          f1:
+          [.25, 0, .2,  0,
+           .25, 0,  0, .3,
+           .25, 0,  0,  0,
+           .25, .1, 0,  0],
+          b1:
+          [1, 2, 3, 4]}
+# (i1 (conv) f1) + b1
+# filter usage:
+#   in_ch1 * f_1  --> output_d1
+#   in_ch1 * f_2  --> output_d2
+#   in_ch2 * f_3  --> output_d3
+#   in_ch3 * f_4  --> output_d4
+output0 = {output: # output 0
+           [11, 3, 7.2, 10.6,
+            11, 3, 7.4, 10.9,
+            11, 3, 7.8, 11.5,
+            11, 3, 8.0, 11.8]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/dequantize_relaxed.mod.py b/runtime/test/specs/V1_1/dequantize_relaxed.mod.py
new file mode 100644
index 0000000..b960627
--- /dev/null
+++ b/runtime/test/specs/V1_1/dequantize_relaxed.mod.py
@@ -0,0 +1,32 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1",  "TENSOR_QUANT8_ASYMM", "{1, 2, 2, 1}, 1.f, 0")
+i2 = Output("op2", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+model = model.Operation("DEQUANTIZE", i1).To(i2)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [0, 32, 128, 255]}
+
+output0 = {i2: # output 0
+           [0.0, 32.0, 128.0, 255.0]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/div_broadcast_float_relaxed.mod.py b/runtime/test/specs/V1_1/div_broadcast_float_relaxed.mod.py
new file mode 100644
index 0000000..e6f033e
--- /dev/null
+++ b/runtime/test/specs/V1_1/div_broadcast_float_relaxed.mod.py
@@ -0,0 +1,36 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2}")
+i2 = Input("op2", "TENSOR_FLOAT32", "{2, 2}")
+act = Int32Scalar("act", 0)
+i3 = Output("op3", "TENSOR_FLOAT32", "{2, 2}")
+model = model.Operation("DIV", i1, i2, act).To(i3)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2],
+          i2: # input 1
+          [1, 1, 2, 2]}
+
+output0 = {i3: # output 0
+           [1, 2, 0.5, 1]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/div_relaxed.mod.py b/runtime/test/specs/V1_1/div_relaxed.mod.py
new file mode 100644
index 0000000..38ba17f
--- /dev/null
+++ b/runtime/test/specs/V1_1/div_relaxed.mod.py
@@ -0,0 +1,36 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+i2 = Input("op2", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+act = Int32Scalar("act", 0) # an int32_t scalar fuse_activation
+i3 = Output("op3", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+model = model.Operation("DIV", i1, i2, act).To(i3)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [2.0, -4.0, 8.0, -16.0],
+          i2: # input 1
+          [2.0, -2.0, -4.0, 4.0]}
+
+output0 = {i3: # output 0
+           [1.0, 2.0, -2.0, -4.0]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/fully_connected_float_2_relaxed.mod.py b/runtime/test/specs/V1_1/fully_connected_float_2_relaxed.mod.py
new file mode 100644
index 0000000..b3ce6e5
--- /dev/null
+++ b/runtime/test/specs/V1_1/fully_connected_float_2_relaxed.mod.py
@@ -0,0 +1,62 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+in0 = Input("op1", "TENSOR_FLOAT32", "{2, 8}")
+weights = Parameter("op2", "TENSOR_FLOAT32", "{16, 8}",
+      [0.091327,  0.103366,  -0.316505, -0.083120, 0.149366,  -0.196636,
+       -0.123672, 0.062800,  0.063031,  0.191670,  -0.062001, -0.061504,
+       -0.275581, 0.059388,  -0.118497, -0.079224, 0.109758,  0.008307,
+       -0.062657, -0.060962, -0.049782, -0.106719, -0.319482, -0.103650,
+       0.266455,  0.051517,  -0.123448, 0.322464,  0.043282,  -0.173782,
+       -0.190381, 0.002013,  0.096086,  0.131157,  0.031164,  0.100638,
+       -0.312191, -0.080923, -0.101318, -0.116614, 0.142238,  0.086540,
+       -0.139154, 0.174268,  -0.073161, 0.080072,  0.006874,  0.229382,
+       -0.104321, -0.176035, -0.208587, -0.001019, -0.162032, 0.080824,
+       -0.025021, 0.074460,  -0.252595, -0.161750, -0.136403, 0.008308,
+       0.005710,  0.096600,  0.289839,  0.218816,  -0.304651, -0.070958,
+       0.054598,  0.147113,  -0.139112, -0.072798, -0.163335, -0.167863,
+       -0.128762, -0.035780, 0.117262,  0.017177,  0.263335,  -0.176612,
+       0.262961,  -0.093654, -0.339283, 0.333071,  0.180827,  0.287583,
+       0.066350,  -0.197947, -0.114449, -0.236035, 0.103532,  -0.034284,
+       0.093299,  -0.145361, 0.054001,  0.250570,  0.157010,  -0.143480,
+       -0.139061, -0.048873, 0.067557,  0.139038,  0.324106,  0.227041,
+       0.037793,  -0.225747, -0.241619, 0.357835,  0.135762,  -0.306764,
+       -0.125982, 0.091916,  0.266587,  0.030135,  0.265148,  0.141627,
+       0.020120,  0.083815,  -0.124556, -0.100124, -0.048159, 0.181172,
+       0.302309,  -0.041084, 0.146334,  -0.061511, -0.232605, 0.281324,
+       0.145408,  -0.221897])
+bias = Parameter("b0", "TENSOR_FLOAT32", "{16}",
+     [-0.160594, 0.205770, -0.078307, -0.077984, 0.001937, 0.015860,
+      0.036810, 0.012346, 0.001028, 0.038551, 0.075415, 0.020804,
+      0.048478, -0.032270, 0.175688, -0.085662])
+out0 = Output("op3", "TENSOR_FLOAT32", "{2, 16}")
+act_relu = Int32Scalar("act_relu", 1)
+model = model.Operation("FULLY_CONNECTED", in0, weights, bias, act_relu).To(out0)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {in0: # input 0
+          [0.503691, 0.196961, 0.521017, 0.554248, 0.288678, 0.792476, 0.561653, 0.462230,
+           0.650736, 0.163132, 0.029658, 0.411544, 0.470539, 0.572390, 0.538755, 0.212030]}
+output0 = {out0: # output 0
+           [0,        0.0732134,   0,        0,          0,         0.280859,  0,        0.128927,
+            0,        0.0777251,   0,        0.270268,   0.271435,  0.0173503, 0.335465, 0.235562,
+            0,        0.0745866,   0,        0.051611,   0,         0.253876,  0,        0.0814873,
+            0,        0.104104,    0,        0.248529,   0.264194,  0,         0.302973, 0.166252,]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/fully_connected_float_4d_simple.mod.py b/runtime/test/specs/V1_1/fully_connected_float_4d_simple.mod.py
index 2338c0b..b9a6290 100644
--- a/runtime/test/specs/V1_1/fully_connected_float_4d_simple.mod.py
+++ b/runtime/test/specs/V1_1/fully_connected_float_4d_simple.mod.py
@@ -29,7 +29,6 @@
 out0 = Output("op3", "TENSOR_FLOAT32", "{2, 3}")
 act = Int32Scalar("act", 0)
 model = model.Operation("FULLY_CONNECTED", in0, weights, bias, act).To(out0)
-model = model.RelaxedExecution(True)
 
 # Example 1. Input in operand 0,
 input0 = {in0: # input 0
diff --git a/runtime/test/specs/V1_1/fully_connected_float_4d_simple_relaxed.mod.py b/runtime/test/specs/V1_1/fully_connected_float_4d_simple_relaxed.mod.py
new file mode 100644
index 0000000..2338c0b
--- /dev/null
+++ b/runtime/test/specs/V1_1/fully_connected_float_4d_simple_relaxed.mod.py
@@ -0,0 +1,43 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This test is for testing the input requirements of Fully Connected Op:
+# the input's first dimension doesn't have to be the batch size, the
+# input is reshaped as needed.
+
+model = Model()
+in0 = Input("op1", "TENSOR_FLOAT32", "{4, 1, 5, 1}")
+weights = Parameter("op2", "TENSOR_FLOAT32", "{3, 10}", [
+      1, 2, 3, 4, 5, 6, 7, 8, 9, 10,  # u = 0
+      1, 2, 3, 4, 5, 6, 7, 8, 9, 10,  # u = 1
+      1, 2, 3, 4, 5, 6, 7, 8, 9, 10,  # u = 1
+])
+bias = Parameter("b0", "TENSOR_FLOAT32", "{3}", [1, 2, 3])
+out0 = Output("op3", "TENSOR_FLOAT32", "{2, 3}")
+act = Int32Scalar("act", 0)
+model = model.Operation("FULLY_CONNECTED", in0, weights, bias, act).To(out0)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {in0: # input 0
+          [1, 2, 3, 4, 5, 6, 7,  8, -9, -10,
+           1, 2, 3, 4, 5, 6, 7, -8,  9, -10]}
+output0 = {out0: # output 0
+               [24, 25, 26,
+                58, 59, 60]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/fully_connected_float_large_relaxed.mod.py b/runtime/test/specs/V1_1/fully_connected_float_large_relaxed.mod.py
new file mode 100644
index 0000000..d898534
--- /dev/null
+++ b/runtime/test/specs/V1_1/fully_connected_float_large_relaxed.mod.py
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+in0 = Input("op1", "TENSOR_FLOAT32", "{1, 5}") # batch = 1, input_size = 5
+weights = Parameter("op2", "TENSOR_FLOAT32", "{1, 5}", [2, 3, 4, 5, 6]) # num_units = 1, input_size = 5
+bias = Parameter("b0", "TENSOR_FLOAT32", "{1}", [900000])
+out0 = Output("op3", "TENSOR_FLOAT32", "{1, 1}") # batch = 1, number_units = 1
+act = Int32Scalar("act", 0)
+model = model.Operation("FULLY_CONNECTED", in0, weights, bias, act).To(out0)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {in0: # input 0
+          [1, 10, 100, 1000, 10000]}
+output0 = {out0: # output 0
+           [965432]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/fully_connected_float_large_weights_as_inputs_relaxed.mod.py b/runtime/test/specs/V1_1/fully_connected_float_large_weights_as_inputs_relaxed.mod.py
new file mode 100644
index 0000000..d3f24c5
--- /dev/null
+++ b/runtime/test/specs/V1_1/fully_connected_float_large_weights_as_inputs_relaxed.mod.py
@@ -0,0 +1,37 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+in0 = Input("op1", "TENSOR_FLOAT32", "{1, 5}") # batch = 1, input_size = 5
+weights = Input("op2", "TENSOR_FLOAT32", "{1, 5}") # num_units = 1, input_size = 5
+bias = Input("b0", "TENSOR_FLOAT32", "{1}")
+out0 = Output("op3", "TENSOR_FLOAT32", "{1, 1}") # batch = 1, number_units = 1
+act = Int32Scalar("act", 0)
+model = model.Operation("FULLY_CONNECTED", in0, weights, bias, act).To(out0)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {in0: # input 0
+          [1, 10, 100, 1000, 10000],
+          weights:
+          [2, 3, 4, 5, 6],
+          bias:
+          [900000]}
+output0 = {out0: # output 0
+           [965432]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/l2_normalization_2_relaxed.mod.py b/runtime/test/specs/V1_1/l2_normalization_2_relaxed.mod.py
new file mode 100644
index 0000000..54e57d1
--- /dev/null
+++ b/runtime/test/specs/V1_1/l2_normalization_2_relaxed.mod.py
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 1, 1, 6}")
+i2 = Output("op2", "TENSOR_FLOAT32", "{1, 1, 1, 6}")
+
+# Color wize (channel-wise) normalization
+model = model.Operation("L2_NORMALIZATION", i1).To(i2)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1:
+          [-1.1, 0.6, 0.7, 1.2, -0.7, 0.1]}
+
+output0 = {i2: # output 0
+           [-0.55, 0.3, 0.35, 0.6, -0.35, 0.05]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/l2_pool_float_2_relaxed.mod.py b/runtime/test/specs/V1_1/l2_pool_float_2_relaxed.mod.py
new file mode 100644
index 0000000..bd76e3a
--- /dev/null
+++ b/runtime/test/specs/V1_1/l2_pool_float_2_relaxed.mod.py
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 4, 1}") # input 0
+cons2 = Int32Scalar("cons2", 2)
+pad_same = Int32Scalar("pad_same", 1)
+act_none = Int32Scalar("act_none", 0)
+i3 = Output("op3", "TENSOR_FLOAT32", "{1, 1, 2, 1}") # output 0
+model = model.Operation("L2_POOL_2D", i1, pad_same, cons2, cons2, cons2, cons2, act_none).To(i3)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [0, 6, 2, 4, 3, 2, 10, 7]}
+output0 = {i3: # output 0
+          [3.5, 6.5]}
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/l2_pool_float_large_relaxed.mod.py b/runtime/test/specs/V1_1/l2_pool_float_large_relaxed.mod.py
new file mode 100644
index 0000000..41afbe4
--- /dev/null
+++ b/runtime/test/specs/V1_1/l2_pool_float_large_relaxed.mod.py
@@ -0,0 +1,43 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 2, 3}") # input 0
+filter_width = Int32Scalar("filter_width", 2)
+filter_height = Int32Scalar("filter_height", 2)
+stride_width = Int32Scalar("stride_width", 1)
+stride_height = Int32Scalar("stride_height", 1)
+pad0 = Int32Scalar("pad0", 0)
+act = Int32Scalar("act", 0)
+i3 = Output("op3", "TENSOR_FLOAT32", "{1, 1, 1, 3}") # output 0
+model = model.Operation("L2_POOL_2D", i1, pad0, pad0, pad0, pad0,
+                        stride_width, stride_height,
+                        filter_width, filter_height,
+                        act).To(i3)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.0,  2.0,  3.0,
+           4.0,  5.0,  6.0,
+           7.0,  8.0,  9.0,
+           10.0, 11.0, 12.0]}
+output0 = {i3: # output 0
+          [6.442049503326416, # sqrt(166/4)
+           7.3143692016601562, # sqrt(214/4)
+           8.2158384323120117]} # sqrt(270/4)
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/max_pool_float_4_relaxed.mod.py b/runtime/test/specs/V1_1/max_pool_float_4_relaxed.mod.py
new file mode 100644
index 0000000..7753b31
--- /dev/null
+++ b/runtime/test/specs/V1_1/max_pool_float_4_relaxed.mod.py
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 4, 1}") # input 0
+cons2 = Int32Scalar("cons2", 2)
+pad_same = Int32Scalar("pad_same", 1)
+act_none = Int32Scalar("act_none", 0)
+i3 = Output("op3", "TENSOR_FLOAT32", "{1, 1, 2, 1}") # output 0
+model = model.Operation("MAX_POOL_2D", i1, pad_same, cons2, cons2, cons2, cons2, act_none).To(i3)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [0, 6, 2, 4, 3, 2, 10, 7]}
+output0 = {i3: # output 0
+          [6, 10]}
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/mean_float_1_relaxed.mod.py b/runtime/test/specs/V1_1/mean_float_1_relaxed.mod.py
new file mode 100644
index 0000000..e78f517
--- /dev/null
+++ b/runtime/test/specs/V1_1/mean_float_1_relaxed.mod.py
@@ -0,0 +1,35 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4, 3, 2}")
+axis = Parameter("axis", "TENSOR_INT32", "{4}", [1, 0, -3, -3])
+keepDims = Int32Scalar("keepDims", 0)
+output = Output("output", "TENSOR_FLOAT32", "{2}")
+
+model = model.Operation("MEAN", i1, axis, keepDims).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.0,  2.0,  3.0,  4.0,  5.0,  6.0,  7.0,  8.0,  9.0,  10.0, 11.0, 12.0,
+           13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0]}
+
+output0 = {output: # output 0
+          [12.0, 13.0]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/mean_float_2_relaxed.mod.py b/runtime/test/specs/V1_1/mean_float_2_relaxed.mod.py
new file mode 100644
index 0000000..be2212f
--- /dev/null
+++ b/runtime/test/specs/V1_1/mean_float_2_relaxed.mod.py
@@ -0,0 +1,35 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4, 3, 2}")
+axis = Parameter("axis", "TENSOR_INT32", "{2}", [0, 2])
+keepDims = Int32Scalar("keepDims", 1)
+output = Output("output", "TENSOR_FLOAT32", "{1, 3, 1}")
+
+model = model.Operation("MEAN", i1, axis, keepDims).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.0,  2.0,  3.0,  4.0,  5.0,  6.0,  7.0,  8.0,  9.0,  10.0, 11.0, 12.0,
+           13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0]}
+
+output0 = {output: # output 0
+          [10.5, 12.5, 14.5]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/mean_relaxed.mod.py b/runtime/test/specs/V1_1/mean_relaxed.mod.py
new file mode 100644
index 0000000..ae337ac
--- /dev/null
+++ b/runtime/test/specs/V1_1/mean_relaxed.mod.py
@@ -0,0 +1,36 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+axis = Parameter("axis", "TENSOR_INT32", "{1}", [2])
+keepDims = Int32Scalar("keepDims", 0)
+output = Output("output", "TENSOR_FLOAT32", "{1, 2, 1}")
+
+model = model.Operation("MEAN", i1, axis, keepDims).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.0, 2.0,
+           3.0, 4.0]}
+
+output0 = {output: # output 0
+          [1.5,
+           3.5]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/pad_float_1_relaxed.mod.py b/runtime/test/specs/V1_1/pad_float_1_relaxed.mod.py
new file mode 100644
index 0000000..8664f64
--- /dev/null
+++ b/runtime/test/specs/V1_1/pad_float_1_relaxed.mod.py
@@ -0,0 +1,35 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 3, 1}")
+i2 = Parameter("op2", "TENSOR_INT32", "{4, 2}", [0, 0, 0, 2, 1, 3, 0, 0])
+i3 = Output("op3", "TENSOR_FLOAT32", "{1, 4, 7, 1}")
+model = model.Operation("PAD", i1, i2).To(i3)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.0, 2.0, 3.0,
+           4.0, 5.0, 6.0]}
+
+output0 = {i3: # output 0
+           [0, 1, 2, 3, 0, 0, 0, 0, 4, 5, 6, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/pad_relaxed.mod.py b/runtime/test/specs/V1_1/pad_relaxed.mod.py
new file mode 100644
index 0000000..2587615
--- /dev/null
+++ b/runtime/test/specs/V1_1/pad_relaxed.mod.py
@@ -0,0 +1,37 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+i2 = Parameter("op2", "TENSOR_INT32", "{4, 2}", [0, 0, 1, 1, 1, 1, 0, 0])
+i3 = Output("op3", "TENSOR_FLOAT32", "{1, 4, 4, 1}")
+model = model.Operation("PAD", i1, i2).To(i3)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.0, 2.0,
+           3.0, 4.0,]}
+
+output0 = {i3: # output 0
+           [0.0, 0.0, 0.0, 0.0,
+            0.0, 1.0, 2.0, 0.0,
+            0.0, 3.0, 4.0, 0.0,
+            0.0, 0.0, 0.0, 0.0]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/relu_float_2_relaxed.mod.py b/runtime/test/specs/V1_1/relu_float_2_relaxed.mod.py
new file mode 100644
index 0000000..acc5aec
--- /dev/null
+++ b/runtime/test/specs/V1_1/relu_float_2_relaxed.mod.py
@@ -0,0 +1,40 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+
+d0 = 2
+d1 = 64
+d2 = 40
+d3 = 2
+
+i0 = Input("input", "TENSOR_FLOAT32", "{%d, %d, %d, %d}" % (d0, d1, d2, d3))
+
+output = Output("output", "TENSOR_FLOAT32", "{%d, %d, %d, %d}" % (d0, d1, d2, d3))
+
+model = model.Operation("RELU", i0).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+rng = d0 * d1 * d2 * d3
+input_values = (lambda r = rng: [x * (x % 2 - .5) * 2 for x in range(r)])()
+input0 = {i0: input_values}
+output_values = (lambda r = rng: [x * (x % 2) for x in range(r)])()
+output0 = {output: output_values}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/resize_bilinear_2_relaxed.mod.py b/runtime/test/specs/V1_1/resize_bilinear_2_relaxed.mod.py
new file mode 100644
index 0000000..0b1aca5
--- /dev/null
+++ b/runtime/test/specs/V1_1/resize_bilinear_2_relaxed.mod.py
@@ -0,0 +1,35 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 2, 2}")
+i2 = Output("op2", "TENSOR_FLOAT32", "{1, 3, 3, 2}")
+h = Int32Scalar("height", 3) # an int32_t scalar bias
+w = Int32Scalar("width", 3)
+model = model.Operation("RESIZE_BILINEAR", i1, h, w).To(i2)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [3, 4, 6, 10, 9, 10, 12, 16]}
+output0 = {i2: # output 0
+           [3, 4, 5, 8, 6, 10,
+            7, 8, 9, 12, 10, 14,
+            9, 10, 11, 14, 12, 16,]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/space_to_batch_float_1_relaxed.mod.py b/runtime/test/specs/V1_1/space_to_batch_float_1_relaxed.mod.py
new file mode 100644
index 0000000..de85667
--- /dev/null
+++ b/runtime/test/specs/V1_1/space_to_batch_float_1_relaxed.mod.py
@@ -0,0 +1,34 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{1, 4, 4, 1}")
+block = Parameter("block_size", "TENSOR_INT32", "{2}", [2, 2])
+paddings = Parameter("paddings", "TENSOR_INT32", "{2, 2}", [0, 0, 0, 0])
+output = Output("output", "TENSOR_FLOAT32", "{4, 2, 2, 1}")
+
+model = model.Operation("SPACE_TO_BATCH_ND", i1, block, paddings).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]}
+
+output0 = {output: # output 0
+           [1, 3, 9, 11, 2, 4, 10, 12, 5, 7, 13, 15, 6, 8, 14, 16]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/space_to_batch_float_2_relaxed.mod.py b/runtime/test/specs/V1_1/space_to_batch_float_2_relaxed.mod.py
new file mode 100644
index 0000000..610e34e
--- /dev/null
+++ b/runtime/test/specs/V1_1/space_to_batch_float_2_relaxed.mod.py
@@ -0,0 +1,35 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{1, 5, 2, 1}")
+block = Parameter("block_size", "TENSOR_INT32", "{2}", [3, 2])
+paddings = Parameter("paddings", "TENSOR_INT32", "{2, 2}", [1, 0, 2, 0])
+output = Output("output", "TENSOR_FLOAT32", "{6, 2, 2, 1}")
+
+model = model.Operation("SPACE_TO_BATCH_ND", i1, block, paddings).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}
+
+output0 = {output: # output 0
+           [0, 0, 0, 5, 0, 0, 0, 6, 0, 1, 0, 7,
+            0, 2, 0, 8, 0, 3, 0, 9, 0, 4, 0, 10]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/space_to_batch_float_3_relaxed.mod.py b/runtime/test/specs/V1_1/space_to_batch_float_3_relaxed.mod.py
new file mode 100644
index 0000000..99c892c
--- /dev/null
+++ b/runtime/test/specs/V1_1/space_to_batch_float_3_relaxed.mod.py
@@ -0,0 +1,36 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{1, 4, 2, 1}")
+block = Parameter("block_size", "TENSOR_INT32", "{2}", [3, 2])
+paddings = Parameter("paddings", "TENSOR_INT32", "{2, 2}", [1, 1, 2, 4])
+output = Output("output", "TENSOR_FLOAT32", "{6, 2, 4, 1}")
+
+model = model.Operation("SPACE_TO_BATCH_ND", i1, block, paddings).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4, 5, 6, 7, 8]}
+
+output0 = {output: # output 0
+           [0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0,
+            0, 1, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0,
+            0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/space_to_batch_relaxed.mod.py b/runtime/test/specs/V1_1/space_to_batch_relaxed.mod.py
new file mode 100644
index 0000000..0924ae2
--- /dev/null
+++ b/runtime/test/specs/V1_1/space_to_batch_relaxed.mod.py
@@ -0,0 +1,34 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{1, 2, 2, 2}")
+block = Parameter("block_size", "TENSOR_INT32", "{2}", [2, 2])
+paddings = Parameter("paddings", "TENSOR_INT32", "{2, 2}", [0, 0, 0, 0])
+output = Output("output", "TENSOR_FLOAT32", "{4, 1, 1, 2}")
+
+model = model.Operation("SPACE_TO_BATCH_ND", i1, block, paddings).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.4, 2.3, 3.2, 4.1, 5.4, 6.3, 7.2, 8.1]}
+
+output0 = {output: # output 0
+           [1.4, 2.3, 3.2, 4.1, 5.4, 6.3, 7.2, 8.1]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/squeeze_float_1_relaxed.mod.py b/runtime/test/specs/V1_1/squeeze_float_1_relaxed.mod.py
new file mode 100644
index 0000000..e34e81b
--- /dev/null
+++ b/runtime/test/specs/V1_1/squeeze_float_1_relaxed.mod.py
@@ -0,0 +1,35 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{1, 24, 1}")
+squeezeDims = Parameter("squeezeDims", "TENSOR_INT32", "{1}", [2])
+output = Output("output", "TENSOR_FLOAT32", "{1, 24}")
+
+model = model.Operation("SQUEEZE", i1, squeezeDims).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+           13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]}
+
+output0 = {output: # output 0
+          [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+           13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/squeeze_relaxed.mod.py b/runtime/test/specs/V1_1/squeeze_relaxed.mod.py
new file mode 100644
index 0000000..4338c79
--- /dev/null
+++ b/runtime/test/specs/V1_1/squeeze_relaxed.mod.py
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4, 1, 1, 2}")
+squeezeDims = Parameter("squeezeDims", "TENSOR_INT32", "{2}", [1, 2])
+output = Output("output", "TENSOR_FLOAT32", "{4, 2}")
+
+model = model.Operation("SQUEEZE", i1, squeezeDims).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.4, 2.3, 3.2, 4.1, 5.4, 6.3, 7.2, 8.1]}
+
+output0 = {output: # output 0
+           [1.4, 2.3, 3.2, 4.1, 5.4, 6.3, 7.2, 8.1]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_10_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_10_relaxed.mod.py
new file mode 100644
index 0000000..2aee513
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_10_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{2, 3}")
+begins = Parameter("begins", "TENSOR_INT32", "{2}", [1, 0])
+ends = Parameter("ends", "TENSOR_INT32", "{2}", [2, 2])
+strides = Parameter("strides", "TENSOR_INT32", "{2}", [1, 1])
+beginMask = Int32Scalar("beginMask", 0)
+endMask = Int32Scalar("endMask", 2)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{1, 3}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4, 5, 6]}
+
+output0 = {output: # output 0
+           [4, 5, 6]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_11_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_11_relaxed.mod.py
new file mode 100644
index 0000000..71a9057
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_11_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{2, 3}")
+begins = Parameter("begins", "TENSOR_INT32", "{2}", [0, 0])
+ends = Parameter("ends", "TENSOR_INT32", "{2}", [2, 3])
+strides = Parameter("strides", "TENSOR_INT32", "{2}", [1, 1])
+beginMask = Int32Scalar("beginMask", 0)
+endMask = Int32Scalar("endMask", 0)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 1)
+
+output = Output("output", "TENSOR_FLOAT32", "{3}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4, 5, 6]}
+
+output0 = {output: # output 0
+           [1, 2, 3]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_1_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_1_relaxed.mod.py
new file mode 100644
index 0000000..e80187a
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_1_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4}")
+begins = Parameter("begins", "TENSOR_INT32", "{1}", [1])
+ends = Parameter("ends", "TENSOR_INT32", "{1}", [3])
+strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
+beginMask = Int32Scalar("beginMask", 0)
+endMask = Int32Scalar("endMask", 0)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{2}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4]}
+
+output0 = {output: # output 0
+           [2, 3]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_2_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_2_relaxed.mod.py
new file mode 100644
index 0000000..a1e3ad4
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_2_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4}")
+begins = Parameter("begins", "TENSOR_INT32", "{1}", [-3])
+ends = Parameter("ends", "TENSOR_INT32", "{1}", [3])
+strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
+beginMask = Int32Scalar("beginMask", 0)
+endMask = Int32Scalar("endMask", 0)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{2}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4]}
+
+output0 = {output: # output 0
+           [2, 3]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_3_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_3_relaxed.mod.py
new file mode 100644
index 0000000..8696a8b
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_3_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4}")
+begins = Parameter("begins", "TENSOR_INT32", "{1}", [-5])
+ends = Parameter("ends", "TENSOR_INT32", "{1}", [3])
+strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
+beginMask = Int32Scalar("beginMask", 0)
+endMask = Int32Scalar("endMask", 0)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{3}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4]}
+
+output0 = {output: # output 0
+           [1, 2, 3]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_4_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_4_relaxed.mod.py
new file mode 100644
index 0000000..68a5745
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_4_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4}")
+begins = Parameter("begins", "TENSOR_INT32", "{1}", [1])
+ends = Parameter("ends", "TENSOR_INT32", "{1}", [-2])
+strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
+beginMask = Int32Scalar("beginMask", 0)
+endMask = Int32Scalar("endMask", 0)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{1}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4]}
+
+output0 = {output: # output 0
+           [2]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_5_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_5_relaxed.mod.py
new file mode 100644
index 0000000..dda4e7d
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_5_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4}")
+begins = Parameter("begins", "TENSOR_INT32", "{1}", [1])
+ends = Parameter("ends", "TENSOR_INT32", "{1}", [3])
+strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
+beginMask = Int32Scalar("beginMask", 1)
+endMask = Int32Scalar("endMask", 0)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{3}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4]}
+
+output0 = {output: # output 0
+           [1, 2, 3]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_6_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_6_relaxed.mod.py
new file mode 100644
index 0000000..f5bb39d
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_6_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{4}")
+begins = Parameter("begins", "TENSOR_INT32", "{1}", [1])
+ends = Parameter("ends", "TENSOR_INT32", "{1}", [3])
+strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
+beginMask = Int32Scalar("beginMask", 0)
+endMask = Int32Scalar("endMask", 1)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{3}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4]}
+
+output0 = {output: # output 0
+           [2, 3, 4]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_7_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_7_relaxed.mod.py
new file mode 100644
index 0000000..7b5aae4
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_7_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{3}")
+begins = Parameter("begins", "TENSOR_INT32", "{1}", [-1])
+ends = Parameter("ends", "TENSOR_INT32", "{1}", [-4])
+strides = Parameter("strides", "TENSOR_INT32", "{1}", [-1])
+beginMask = Int32Scalar("beginMask", 0)
+endMask = Int32Scalar("endMask", 0)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{3}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3]}
+
+output0 = {output: # output 0
+           [3, 2, 1]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_8_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_8_relaxed.mod.py
new file mode 100644
index 0000000..22ce230
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_8_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{2, 3}")
+begins = Parameter("begins", "TENSOR_INT32", "{2}", [1, -1])
+ends = Parameter("ends", "TENSOR_INT32", "{2}", [2, -4])
+strides = Parameter("strides", "TENSOR_INT32", "{2}", [2, -1])
+beginMask = Int32Scalar("beginMask", 0)
+endMask = Int32Scalar("endMask", 0)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{1, 3}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4, 5, 6]}
+
+output0 = {output: # output 0
+           [6, 5, 4]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_float_9_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_float_9_relaxed.mod.py
new file mode 100644
index 0000000..1fe5368
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_float_9_relaxed.mod.py
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{2, 3}")
+begins = Parameter("begins", "TENSOR_INT32", "{2}", [1, 0])
+ends = Parameter("ends", "TENSOR_INT32", "{2}", [2, 2])
+strides = Parameter("strides", "TENSOR_INT32", "{2}", [1, 1])
+beginMask = Int32Scalar("beginMask", 1)
+endMask = Int32Scalar("endMask", 0)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{2, 2}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2, 3, 4, 5, 6]}
+
+output0 = {output: # output 0
+           [1, 2, 4, 5]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/strided_slice_relaxed.mod.py b/runtime/test/specs/V1_1/strided_slice_relaxed.mod.py
new file mode 100644
index 0000000..271c399
--- /dev/null
+++ b/runtime/test/specs/V1_1/strided_slice_relaxed.mod.py
@@ -0,0 +1,40 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{2, 3}")
+begins = Parameter("begins", "TENSOR_INT32", "{2}", [0, 0])
+ends = Parameter("ends", "TENSOR_INT32", "{2}", [2, 3])
+strides = Parameter("strides", "TENSOR_INT32", "{2}", [2, 2])
+beginMask = Int32Scalar("beginMask", 0)
+endMask = Int32Scalar("endMask", 0)
+shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
+
+output = Output("output", "TENSOR_FLOAT32", "{1, 2}")
+
+model = model.Operation("STRIDED_SLICE", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.0, 2.0, 3.0,
+           4.0, 5.0, 6.0]}
+
+output0 = {output: # output 0
+           [1.0, 3.0]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/sub_broadcast_float_relaxed.mod.py b/runtime/test/specs/V1_1/sub_broadcast_float_relaxed.mod.py
new file mode 100644
index 0000000..7c009dc
--- /dev/null
+++ b/runtime/test/specs/V1_1/sub_broadcast_float_relaxed.mod.py
@@ -0,0 +1,36 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2}")
+i2 = Input("op2", "TENSOR_FLOAT32", "{2, 2}")
+act = Int32Scalar("act", 0)
+i3 = Output("op3", "TENSOR_FLOAT32", "{2, 2}")
+model = model.Operation("SUB", i1, i2, act).To(i3)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1, 2],
+          i2: # input 1
+          [1, 2, 3, 4]}
+
+output0 = {i3: # output 0
+           [0, 0, -2, -2]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/sub_relaxed.mod.py b/runtime/test/specs/V1_1/sub_relaxed.mod.py
new file mode 100644
index 0000000..14bdd56
--- /dev/null
+++ b/runtime/test/specs/V1_1/sub_relaxed.mod.py
@@ -0,0 +1,36 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+i2 = Input("op2", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+act = Int32Scalar("act", 0) # an int32_t scalar fuse_activation
+i3 = Output("op3", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+model = model.Operation("SUB", i1, i2, act).To(i3)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [2.0, -4.0, 8.0, -16.0],
+          i2: # input 1
+          [2.0, -2.0, -4.0, 4.0]}
+
+output0 = {i3: # output 0
+           [0.0, -2.0, 12.0, -20.0]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/transpose_float_1_relaxed.mod.py b/runtime/test/specs/V1_1/transpose_float_1_relaxed.mod.py
new file mode 100644
index 0000000..721e6be
--- /dev/null
+++ b/runtime/test/specs/V1_1/transpose_float_1_relaxed.mod.py
@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{2, 3, 4, 5}")
+perms = Parameter("perms", "TENSOR_INT32", "{4}", [2, 0, 1, 3])
+output = Output("output", "TENSOR_FLOAT32", "{4, 2, 3, 5}")
+
+model = model.Operation("TRANSPOSE", i1, perms).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,
+           12,  13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23,
+           24,  25,  26,  27,  28,  29,  30,  31,  32,  33,  34,  35,
+           36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
+           48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
+           60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,
+           72,  73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83,
+           84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
+           96,  97,  98,  99,  100, 101, 102, 103, 104, 105, 106, 107,
+           108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119]}
+
+output0 = {output: # output 0
+          [0,  1,  2,  3,  4,  20, 21, 22, 23, 24, 40,  41,  42,  43,  44,
+           60, 61, 62, 63, 64, 80, 81, 82, 83, 84, 100, 101, 102, 103, 104,
+           5,  6,  7,  8,  9,  25, 26, 27, 28, 29, 45,  46,  47,  48,  49,
+           65, 66, 67, 68, 69, 85, 86, 87, 88, 89, 105, 106, 107, 108, 109,
+           10, 11, 12, 13, 14, 30, 31, 32, 33, 34, 50,  51,  52,  53,  54,
+           70, 71, 72, 73, 74, 90, 91, 92, 93, 94, 110, 111, 112, 113, 114,
+           15, 16, 17, 18, 19, 35, 36, 37, 38, 39, 55,  56,  57,  58,  59,
+           75, 76, 77, 78, 79, 95, 96, 97, 98, 99, 115, 116, 117, 118, 119]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtime/test/specs/V1_1/transpose_relaxed.mod.py b/runtime/test/specs/V1_1/transpose_relaxed.mod.py
new file mode 100644
index 0000000..668e0c2
--- /dev/null
+++ b/runtime/test/specs/V1_1/transpose_relaxed.mod.py
@@ -0,0 +1,35 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+model = Model()
+i1 = Input("input", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+perms = Parameter("perms", "TENSOR_INT32", "{4}", [0, 2, 1, 3])
+output = Output("output", "TENSOR_FLOAT32", "{1, 2, 2, 1}")
+
+model = model.Operation("TRANSPOSE", i1, perms).To(output)
+model = model.RelaxedExecution(True)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [1.0, 2.0,
+           3.0, 4.0]}
+
+output0 = {output: # output 0
+          [1.0, 3.0,
+           2.0, 4.0]}
+
+# Instantiate an example
+Example((input0, output0))