Remove same scale constraint for abs.
PiperOrigin-RevId: 414892096
Change-Id: I084f01b060c7deceed9a032776106423cf1def28
diff --git a/tensorflow/compiler/mlir/lite/ir/tfl_ops.td b/tensorflow/compiler/mlir/lite/ir/tfl_ops.td
index e9ce7a1..f90e0d1 100644
--- a/tensorflow/compiler/mlir/lite/ir/tfl_ops.td
+++ b/tensorflow/compiler/mlir/lite/ir/tfl_ops.td
@@ -541,9 +541,7 @@
//===----------------------------------------------------------------------===//
def TFL_AbsOp : TFL_Op<"abs", [
NoSideEffect,
- SameOperandsAndResultShape,
- SameOperandsAndResultType,
- SameOperandsAndResultsScale]> {
+ SameOperandsAndResultShape]> {
let summary = "Absolute value operator";
let description = [{
diff --git a/tensorflow/lite/testing/op_tests/abs.py b/tensorflow/lite/testing/op_tests/abs.py
index d287237..387c0d5 100644
--- a/tensorflow/lite/testing/op_tests/abs.py
+++ b/tensorflow/lite/testing/op_tests/abs.py
@@ -30,7 +30,7 @@
"dtype": [tf.float32],
"dynamic_range_quantize": [False, True],
"fully_quantize": [False],
- "input_range": [(-10, 10)],
+ "input_range": [(-10, 10), (-10, 0)],
}, {
"input_shape": [[], [1], [2, 3], [1, 1, 1, 1], [1, 3, 4, 3],
[3, 15, 14, 3], [3, 1, 2, 4, 6], [2, 2, 3, 4, 5, 6]],
@@ -55,11 +55,14 @@
return [input_tensor], [out]
def build_inputs(parameters, sess, inputs, outputs):
+ min_value, max_value = (-10, 10)
+ if "input_range" in parameters:
+ min_value, max_value = parameters["input_range"]
input_values = create_tensor_data(
parameters["dtype"],
parameters["input_shape"],
- min_value=-10,
- max_value=10)
+ min_value=min_value,
+ max_value=max_value)
return [input_values], sess.run(
outputs, feed_dict=dict(zip(inputs, [input_values])))
diff --git a/tensorflow/lite/tools/optimize/operator_property.cc b/tensorflow/lite/tools/optimize/operator_property.cc
index bdd83bb..a40f38f 100644
--- a/tensorflow/lite/tools/optimize/operator_property.cc
+++ b/tensorflow/lite/tools/optimize/operator_property.cc
@@ -69,7 +69,6 @@
property.inputs = {{0, {}}};
property.outputs = {{0, {}}};
property.version = 2;
- property.restrict_same_input_output_scale = true;
break;
case BuiltinOperator_RSQRT:
property.inputs = {{0, {}}};