aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/NetworkUtils.hpp
diff options
context:
space:
mode:
authorAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2018-11-21 13:14:42 +0000
committerAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2018-11-22 13:51:52 +0000
commit5fdfe823b993c2f3089fe621aed028c7be3c0fcc (patch)
tree5994262b0829d291dd2f4ec6d66fabb7f37aae6f /src/armnn/NetworkUtils.hpp
parent574bf0a7f1b6bbaf2e6fa8e9dd87b9fcf6ff9c5a (diff)
downloadarmnn-5fdfe823b993c2f3089fe621aed028c7be3c0fcc.tar.gz
Refactor inlined utility functions in NetworkUtils
Change-Id: I26fb13717f64c942b2648702c52be18be856042d
Diffstat (limited to 'src/armnn/NetworkUtils.hpp')
-rw-r--r--src/armnn/NetworkUtils.hpp68
1 files changed, 3 insertions, 65 deletions
diff --git a/src/armnn/NetworkUtils.hpp b/src/armnn/NetworkUtils.hpp
index 60cbf27bde..dbb85380ff 100644
--- a/src/armnn/NetworkUtils.hpp
+++ b/src/armnn/NetworkUtils.hpp
@@ -10,70 +10,8 @@
namespace armnn
{
-inline std::vector<ConvertFp16ToFp32Layer*> InsertConvertFp16ToFp32LayersBefore(Graph& graph, Layer& layer)
-{
- std::vector<ConvertFp16ToFp32Layer*> convertLayers;
- convertLayers.reserve(layer.GetNumInputSlots());
-
- for (auto&& inputSlot = layer.BeginInputSlots(); inputSlot != layer.EndInputSlots(); ++inputSlot)
- {
- // Insert FP16 to FP32 converter layer before the layer
- const std::string name =
- std::string("convert_fp16_to_fp32-" + std::to_string(inputSlot->GetSlotIndex()) + "-") + layer.GetName();
- ConvertFp16ToFp32Layer* convertLayer =
- graph.InsertNewLayer<ConvertFp16ToFp32Layer>(*inputSlot, name.c_str());
-
- // Sets output tensor info for the convert layer
- TensorInfo convertInfo = convertLayer->GetInputSlot(0).GetConnectedOutputSlot()->GetTensorInfo();
- convertInfo.SetDataType(DataType::Float32);
-
- convertLayer->GetOutputSlot().SetTensorInfo(convertInfo);
-
- convertLayers.emplace_back(convertLayer);
- }
-
- // Sets the output tensor info for the unsupported layer
- auto UpdateTensorInfo = [](auto& outputSlot)
- {
- // Copy original tensor info and change data type to FP32
- TensorInfo newTensorInfo = outputSlot.GetTensorInfo();
- newTensorInfo.SetDataType(DataType::Float32);
-
- outputSlot.SetTensorInfo(newTensorInfo);
- };
-
- std::for_each(layer.BeginOutputSlots(), layer.EndOutputSlots(), UpdateTensorInfo);
-
- return convertLayers;
-}
-
-inline std::vector<ConvertFp32ToFp16Layer*> InsertConvertFp32ToFp16LayersAfter(Graph& graph, Layer& layer)
-{
- std::vector<ConvertFp32ToFp16Layer*> convertLayers;
- convertLayers.reserve(layer.GetNumOutputSlots());
-
- int index = 0;
- // Change outputs to DataType::Float16
- for (auto&& outputSlot = layer.BeginOutputSlots(); outputSlot != layer.EndOutputSlots(); ++outputSlot)
- {
- BOOST_ASSERT(outputSlot->GetTensorInfo().GetDataType() == DataType::Float32);
-
- // Insert FP32 to FP16 converter layer after the layer
- const std::string name =
- std::string("convert_fp32_to_fp16-" + std::to_string(index++) + "-") + layer.GetName();
- ConvertFp32ToFp16Layer* convertLayer =
- graph.InsertNewLayer<ConvertFp32ToFp16Layer>(*outputSlot, name.c_str());
-
- // Sets output tensor info for the convert layer.
- TensorInfo convertInfo = convertLayer->GetInputSlot(0).GetConnectedOutputSlot()->GetTensorInfo();
- convertInfo.SetDataType(DataType::Float16);
-
- convertLayer->GetOutputSlot().SetTensorInfo(convertInfo);
-
- convertLayers.emplace_back(convertLayer);
- }
+std::vector<ConvertFp16ToFp32Layer*> InsertConvertFp16ToFp32LayersBefore(Graph& graph, Layer& layer);
- return convertLayers;
-}
+std::vector<ConvertFp32ToFp16Layer*> InsertConvertFp32ToFp16LayersAfter(Graph& graph, Layer& layer);
-} //namespace armnn \ No newline at end of file
+} // namespace armnn