From 3a3b43111a459f72720ee87d690b47efa9077d33 Mon Sep 17 00:00:00 2001 From: Michele Di Giorgio Date: Fri, 6 Jul 2018 12:34:19 +0100 Subject: COMPMID-1378: Graph: bias in FullyConnectedLayer should always have data type S32 Change-Id: Ib4a82b11e810664c663dfc66281ff6bf44d2aa6b Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/139029 Tested-by: Jenkins Reviewed-by: Anthony Barbier --- src/graph/GraphBuilder.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/graph') diff --git a/src/graph/GraphBuilder.cpp b/src/graph/GraphBuilder.cpp index cd08f87e07..3b906c0ffd 100644 --- a/src/graph/GraphBuilder.cpp +++ b/src/graph/GraphBuilder.cpp @@ -252,7 +252,11 @@ NodeID GraphBuilder::add_convolution_node(Graph &g, NodeParams params, NodeIdxPa { TensorDescriptor b_desc = input_tensor_desc; b_desc.shape = TensorShape(depth); - b_nid = add_const_node_with_name(g, params, "Bias", b_desc, std::move(bias_accessor)); + if(is_data_type_quantized_asymmetric(input_tensor_desc.data_type)) + { + b_desc.data_type = DataType::S32; + } + b_nid = add_const_node_with_name(g, params, "Bias", b_desc, std::move(bias_accessor)); } if(num_groups == 1) @@ -305,7 +309,11 @@ NodeID GraphBuilder::add_deconvolution_node(Graph &g, NodeParams params, NodeIdx { TensorDescriptor b_desc = input_tensor_desc; b_desc.shape = TensorShape(depth); - b_nid = add_const_node_with_name(g, params, "Bias", b_desc, std::move(bias_accessor)); + if(is_data_type_quantized_asymmetric(input_tensor_desc.data_type)) + { + b_desc.data_type = DataType::S32; + } + b_nid = add_const_node_with_name(g, params, "Bias", b_desc, std::move(bias_accessor)); } // Create convolution node and connect @@ -431,7 +439,11 @@ NodeID GraphBuilder::add_fully_connected_layer(Graph &g, NodeParams params, Node { TensorDescriptor b_desc = input_tensor_desc; b_desc.shape = TensorShape(num_outputs); - b_nid = add_const_node_with_name(g, params, "Bias", b_desc, std::move(bias_accessor)); + if(is_data_type_quantized_asymmetric(input_tensor_desc.data_type)) + { + b_desc.data_type = DataType::S32; + } + b_nid = add_const_node_with_name(g, params, "Bias", b_desc, std::move(bias_accessor)); } // Create convolution node and connect @@ -508,4 +520,4 @@ NodeID GraphBuilder::add_split_node(Graph &g, NodeParams params, NodeIdxPair inp return create_simple_single_input_output_node(g, params, input, num_splits, axis); } } // namespace graph -} // namespace arm_compute \ No newline at end of file +} // namespace arm_compute -- cgit v1.2.1