diff options
Diffstat (limited to 'src/armnn/Network.cpp')
-rw-r--r-- | src/armnn/Network.cpp | 139 |
1 files changed, 1 insertions, 138 deletions
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp index a61624fb0a..158142f48e 100644 --- a/src/armnn/Network.cpp +++ b/src/armnn/Network.cpp @@ -1,5 +1,5 @@ // -// Copyright © 2022 Arm Ltd and Contributors. All rights reserved. +// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // @@ -1714,9 +1714,6 @@ IOptimizedNetworkPtr Optimize(const Graph& inGraph, ARMNN_SCOPED_PROFILING_EVENT(Compute::Undefined, "Optimizer_ConvertConstants"); Optimizer::Pass(optGraph, MakeOptimizations(ConvertConstantsFloatToHalf())); Optimizer::Pass(optGraph, MakeOptimizations(ConvertConstantsHalfToFloat())); - - // Once the constants are converted we can now safely call RedirectMembersToConstantInputs - Optimizer::Pass(optGraph, MakeOptimizations(RedirectMembersToConstantInputs())); } // This must occur after all topological changes to the graph and any redirection of variables @@ -1860,82 +1857,6 @@ IConnectableLayer* NetworkImpl::AddFullyConnectedLayer(const FullyConnectedDescr return m_Graph->AddLayer<FullyConnectedLayer>(fullyConnectedDescriptor, name); } -IConnectableLayer* NetworkImpl::AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor, - const Optional<ConstTensor>& weights, - const Optional<ConstTensor>& biases, - const char* name) -{ - ConstantLayer* weightsLayer = nullptr; - ConstantLayer* biasLayer = nullptr; - unsigned int numInputs = fullyConnectedDescriptor.GetNumInputs(); - - // Add a constant layer for weights - if (weights.has_value()) - { - weightsLayer = m_Graph->AddLayer<ConstantLayer>("Weights"); - weightsLayer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(weights.value()); - - TensorInfo weightsInfo = weightsLayer->m_LayerOutput->GetTensorInfo(); - weightsInfo.SetConstant(); - - weightsLayer->GetOutputSlot(0).SetTensorInfo(weightsInfo); - } - else if (fullyConnectedDescriptor.m_ConstantWeights) - { - throw InvalidArgumentException("AddFullyConnectedLayer: Constant weights tensor is empty."); - } - - // Add a constant layer for biases - if (biases.has_value() && fullyConnectedDescriptor.m_BiasEnabled) - { - biasLayer = m_Graph->AddLayer<ConstantLayer>("Biases"); - biasLayer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(biases.value()); - - TensorInfo biasInfo = biasLayer->m_LayerOutput->GetTensorInfo(); - biasInfo.SetConstant(); - - biasLayer->GetOutputSlot(0).SetTensorInfo(biasInfo); - } - - if (numInputs < 2) - { - throw InvalidArgumentException("AddFullyConnectedLayer: Requires at least 2 input tensors: Input, Weights"); - } - - auto layer = m_Graph->AddLayer<FullyConnectedLayer>(fullyConnectedDescriptor, name); - - if (weightsLayer) - { - // Connect weights layer - weightsLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(1)); - } - - if ( fullyConnectedDescriptor.m_BiasEnabled && numInputs == 3 ) - { - if (biasLayer) - { - // Connect bias layer - biasLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(2)); - } - } - else if ( !fullyConnectedDescriptor.m_BiasEnabled && numInputs == 2 ) - { - // Bias is disabled - layer->m_Bias = nullptr; - } - else - { - throw InvalidArgumentException(fmt::format( - "AddFullyConnectedLayer: Value mismatch. When bias is enabled in the " - "descriptor the number of inputs is expected to be 3 otherwise 2. " - "BiasEnabled={}, numInputs={}", - fullyConnectedDescriptor.m_BiasEnabled, - numInputs)); - } - - return layer; -} - IConnectableLayer* NetworkImpl::AddConcatLayer(const ConcatDescriptor& concatDescriptor, const char* name) { @@ -1948,32 +1869,6 @@ IConnectableLayer* NetworkImpl::AddConvolution2dLayer(const Convolution2dDescrip return m_Graph->AddLayer<Convolution2dLayer>(convolution2dDescriptor, name); } -IConnectableLayer* NetworkImpl::AddConvolution2dLayer(const Convolution2dDescriptor& convolution2dDescriptor, - const ConstTensor& weights, - const Optional<ConstTensor>& biases, - const char* name) -{ - auto layer = m_Graph->AddLayer<Convolution2dLayer>(convolution2dDescriptor, name); - // Add a constant layer for weights - ConstantLayer* weightsLayer = m_Graph->AddLayer<ConstantLayer>("Weights"); - auto weightsTensorHandle = std::make_shared<ScopedTensorHandle>(weights); - weightsLayer->m_LayerOutput = weightsTensorHandle; - layer->m_Weight = weightsTensorHandle; - weightsLayer->GetOutputSlot(0).SetTensorInfo(weightsLayer->m_LayerOutput->GetTensorInfo()); - weightsLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(1)); - // Add a constant layer for biases - if (biases.has_value() && convolution2dDescriptor.m_BiasEnabled) - { - ConstantLayer* biasLayer = m_Graph->AddLayer<ConstantLayer>("Bias"); - auto biasTensorHandle = std::make_shared<ScopedTensorHandle>(biases.value()); - biasLayer->m_LayerOutput = biasTensorHandle; - layer->m_Bias = biasTensorHandle; - biasLayer->GetOutputSlot(0).SetTensorInfo(biasLayer->m_LayerOutput->GetTensorInfo()); - biasLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(2)); - } - return layer; -} - IConnectableLayer* NetworkImpl::AddConvertFp16ToFp32Layer(const char* name) { return m_Graph->AddLayer<ConvertFp16ToFp32Layer>(name); @@ -2003,38 +1898,6 @@ IConnectableLayer* NetworkImpl::AddDepthwiseConvolution2dLayer( return m_Graph->AddLayer<DepthwiseConvolution2dLayer>(convolution2dDescriptor, name); } -IConnectableLayer* NetworkImpl::AddDepthwiseConvolution2dLayer( - const DepthwiseConvolution2dDescriptor& convolution2dDescriptor, - const ConstTensor& weights, - const Optional<ConstTensor>& biases, - const char* name) -{ - auto layer = m_Graph->AddLayer<DepthwiseConvolution2dLayer>(convolution2dDescriptor, name); - - // Add a constant layer for weights - ConstantLayer* weightsLayer = m_Graph->AddLayer<ConstantLayer>("Weights"); - auto weightsTensorHandle = std::make_shared<ScopedTensorHandle>(weights); - weightsLayer->m_LayerOutput = weightsTensorHandle; - layer->m_Weight = weightsTensorHandle; - - weightsLayer->GetOutputSlot(0).SetTensorInfo(weightsLayer->m_LayerOutput->GetTensorInfo()); - weightsLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(1)); - - // Add a constant layer for biases - if (biases.has_value() && convolution2dDescriptor.m_BiasEnabled) - { - ConstantLayer* biasLayer = m_Graph->AddLayer<ConstantLayer>("Bias"); - auto biasTensorHandle = std::make_shared<ScopedTensorHandle>(biases.value()); - biasLayer->m_LayerOutput = biasTensorHandle; - layer->m_Bias = biasTensorHandle; - - biasLayer->GetOutputSlot(0).SetTensorInfo(biasLayer->m_LayerOutput->GetTensorInfo()); - biasLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(2)); - } - - return layer; -} - IConnectableLayer* NetworkImpl::AddDetectionPostProcessLayer(const armnn::DetectionPostProcessDescriptor& descriptor, const ConstTensor& anchors, const char* name) { |