aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/contrib/lite/toco/import_tensorflow.cc
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2018-08-03 12:26:54 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-08-03 12:31:18 -0700
commit69b4ee4c78c2551d027fd39e81fc71e1a6698f31 (patch)
tree7dce4fe0d8904b4ed30e35e8ec355507703259f7 /tensorflow/contrib/lite/toco/import_tensorflow.cc
parentdd45704d092dac87575b8ce39013f91f4f213dc0 (diff)
Add support for float output arrays in Quantized custom operators (custom ops only).
PiperOrigin-RevId: 207306198
Diffstat (limited to 'tensorflow/contrib/lite/toco/import_tensorflow.cc')
-rw-r--r--tensorflow/contrib/lite/toco/import_tensorflow.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/tensorflow/contrib/lite/toco/import_tensorflow.cc b/tensorflow/contrib/lite/toco/import_tensorflow.cc
index 9a404c2606..d8d331f3d4 100644
--- a/tensorflow/contrib/lite/toco/import_tensorflow.cc
+++ b/tensorflow/contrib/lite/toco/import_tensorflow.cc
@@ -1049,6 +1049,8 @@ tensorflow::Status ConvertUnsupportedOperator(
static constexpr char kAttrOutputQuantized[] = "_output_quantized";
static constexpr char kAttrOutputTypes[] = "_output_types";
static constexpr char kAttrOutputShapes[] = "_output_shapes";
+ static constexpr char kAttrSupportOutputTypeFloatInQuantizedOp[] =
+ "_support_output_type_float_in_quantized_op";
LOG(INFO) << "Converting unsupported operation: " << node.op();
auto* op = new TensorFlowUnsupportedOperator;
@@ -1060,9 +1062,15 @@ tensorflow::Status ConvertUnsupportedOperator(
op->tensorflow_op = node.op();
node.SerializeToString(&op->tensorflow_node_def);
model->operators.emplace_back(op);
+ // Parse if the op supports quantization
if (HasAttr(node, kAttrOutputQuantized)) {
op->quantized = GetBoolAttr(node, kAttrOutputQuantized);
}
+ // Parse if the quantized op allows output arrays of type float
+ if (HasAttr(node, kAttrSupportOutputTypeFloatInQuantizedOp)) {
+ op->support_output_type_float_in_quantized_op =
+ GetBoolAttr(node, kAttrSupportOutputTypeFloatInQuantizedOp);
+ }
if (HasAttr(node, kAttrOutputTypes)) {
const auto& output_types = GetListAttr(node, kAttrOutputTypes);
for (int i = 0; i < output_types.type_size(); ++i) {