diff options
Diffstat (limited to 'src/graph/nodes/QuantizationLayerNode.cpp')
-rw-r--r-- | src/graph/nodes/QuantizationLayerNode.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/graph/nodes/QuantizationLayerNode.cpp b/src/graph/nodes/QuantizationLayerNode.cpp index 009d701171..0dd2da919d 100644 --- a/src/graph/nodes/QuantizationLayerNode.cpp +++ b/src/graph/nodes/QuantizationLayerNode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 ARM Limited. + * Copyright (c) 2019-2020,2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -23,6 +23,7 @@ */ #include "arm_compute/graph/nodes/QuantizationLayerNode.h" +#include "arm_compute/core/utils/DataTypeUtils.h" #include "arm_compute/graph/Graph.h" #include "arm_compute/graph/INodeVisitor.h" @@ -31,15 +32,22 @@ namespace arm_compute namespace graph { QuantizationLayerNode::QuantizationLayerNode(QuantizationInfo out_quant_info) - : _out_quant_info(std::move(out_quant_info)) + : QuantizationLayerNode(out_quant_info, DataType::QASYMM8) { +} + +QuantizationLayerNode::QuantizationLayerNode(QuantizationInfo out_quant_info, DataType out_data_type) + : _out_quant_info(std::move(out_quant_info)), _out_data_type(out_data_type) +{ + ARM_COMPUTE_ERROR_ON(!is_data_type_quantized(out_data_type)); + _input_edges.resize(1, EmptyEdgeID); _outputs.resize(1, NullTensorID); } bool QuantizationLayerNode::forward_descriptors() { - if((input_id(0) != NullTensorID) && (output_id(0) != NullTensorID)) + if ((input_id(0) != NullTensorID) && (output_id(0) != NullTensorID)) { Tensor *dst = output(0); ARM_COMPUTE_ERROR_ON(dst == nullptr); @@ -58,7 +66,7 @@ TensorDescriptor QuantizationLayerNode::configure_output(size_t idx) const ARM_COMPUTE_ERROR_ON(src == nullptr); TensorDescriptor output_info = src->desc(); - output_info.data_type = DataType::QASYMM8; + output_info.data_type = _out_data_type; output_info.quant_info = _out_quant_info; return output_info; |