ArmNN
 22.05
NetworkImpl Class Reference

Private implementation of INetwork. More...

#include <Network.hpp>

Public Member Functions

 NetworkImpl (NetworkOptions networkOptions={})
 
 ~NetworkImpl ()
 
const GraphGetGraph () const
 
Status PrintGraph ()
 
IConnectableLayerAddInputLayer (LayerBindingId id, const char *name=nullptr)
 
IConnectableLayerAddActivationLayer (const ActivationDescriptor &activationDescriptor, const char *name=nullptr)
 
IConnectableLayerAddAdditionLayer (const char *name=nullptr)
 
IConnectableLayerAddArgMinMaxLayer (const ArgMinMaxDescriptor &desc, const char *name=nullptr)
 
IConnectableLayerAddBatchNormalizationLayer (const BatchNormalizationDescriptor &desc, const ConstTensor &mean, const ConstTensor &variance, const ConstTensor &beta, const ConstTensor &gamma, const char *name=nullptr)
 
IConnectableLayerAddBatchToSpaceNdLayer (const BatchToSpaceNdDescriptor &batchToSpaceNdDescriptor, const char *name=nullptr)
 
IConnectableLayerAddCastLayer (const char *name=nullptr)
 
IConnectableLayerAddChannelShuffleLayer (const ChannelShuffleDescriptor &channelShuffleDescriptor, const char *name=nullptr)
 
IConnectableLayerAddComparisonLayer (const ComparisonDescriptor &comparisonDescriptor, const char *name=nullptr)
 
IConnectableLayerAddConcatLayer (const ConcatDescriptor &concatDescriptor, const char *name=nullptr)
 
IConnectableLayerAddConvolution2dLayer (const Convolution2dDescriptor &convolution2dDescriptor, const char *name=nullptr)
 
IConnectableLayerAddConvolution2dLayer (const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
 
IConnectableLayerAddConvolution2dLayer (const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const char *name=nullptr)
 
IConnectableLayerAddConvolution2dLayer (const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const ConstTensor &biases, const char *name=nullptr)
 
IConnectableLayerAddConvolution3dLayer (const Convolution3dDescriptor &convolution3dDescriptor, const char *name=nullptr)
 
IConnectableLayerAddConstantLayer (const ConstTensor &input, const char *name=nullptr)
 
IConnectableLayerAddDepthToSpaceLayer (const DepthToSpaceDescriptor &depthToSpaceDescriptor, const char *name=nullptr)
 
IConnectableLayerAddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const char *name=nullptr)
 
IConnectableLayerAddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
 
IConnectableLayerAddDequantizeLayer (const char *name=nullptr)
 
IConnectableLayerAddDetectionPostProcessLayer (const DetectionPostProcessDescriptor &descriptor, const ConstTensor &anchors, const char *name=nullptr)
 
IConnectableLayerAddDivisionLayer (const char *name=nullptr)
 
IConnectableLayerAddElementwiseUnaryLayer (const ElementwiseUnaryDescriptor &elementwiseUnaryDescriptor, const char *name=nullptr)
 
IConnectableLayerAddMergeLayer (const char *name=nullptr)
 
IConnectableLayerAddFillLayer (const FillDescriptor &fillDescriptor, const char *name=nullptr)
 
IConnectableLayerAddFloorLayer (const char *name=nullptr)
 
IConnectableLayerAddFullyConnectedLayer (const FullyConnectedDescriptor &fullyConnectedDescriptor, const char *name=nullptr)
 
IConnectableLayerAddFullyConnectedLayer (const FullyConnectedDescriptor &fullyConnectedDescriptor, const Optional< ConstTensor > &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
 
IConnectableLayerAddGatherLayer (const GatherDescriptor &gatherDescriptor, const char *name=nullptr)
 
IConnectableLayerAddGatherNdLayer (const char *name=nullptr)
 
IConnectableLayerAddInstanceNormalizationLayer (const InstanceNormalizationDescriptor &desc, const char *name=nullptr)
 
IConnectableLayerAddL2NormalizationLayer (const L2NormalizationDescriptor &desc, const char *name=nullptr)
 
IConnectableLayerAddLogSoftmaxLayer (const LogSoftmaxDescriptor &logSoftmaxDescriptor, const char *name=nullptr)
 
IConnectableLayerAddLogicalBinaryLayer (const LogicalBinaryDescriptor &logicalBinaryDescriptor, const char *name=nullptr)
 
IConnectableLayerAddLstmLayer (const LstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
 
IConnectableLayerAddMaximumLayer (const char *name=nullptr)
 
IConnectableLayerAddMeanLayer (const MeanDescriptor &meanDescriptor, const char *name=nullptr)
 
IConnectableLayerAddMinimumLayer (const char *name=nullptr)
 
IConnectableLayerAddMultiplicationLayer (const char *name=nullptr)
 
IConnectableLayerAddNormalizationLayer (const NormalizationDescriptor &normalizationDescriptor, const char *name=nullptr)
 
IConnectableLayerAddOutputLayer (LayerBindingId id, const char *name=nullptr)
 
IConnectableLayerAddPadLayer (const PadDescriptor &padDescriptor, const char *name=nullptr)
 
IConnectableLayerAddPermuteLayer (const PermuteDescriptor &permuteDescriptor, const char *name=nullptr)
 
IConnectableLayerAddPooling2dLayer (const Pooling2dDescriptor &pooling2dDescriptor, const char *name=nullptr)
 
IConnectableLayerAddPooling3dLayer (const Pooling3dDescriptor &pooling3dDescriptor, const char *name=nullptr)
 
IConnectableLayerAddPrecompiledLayer (const PreCompiledDescriptor &preCompiledDescriptor, CompiledBlobPtr compiledBlobPtr, const Optional< BackendId > &backend, const char *name=nullptr)
 
IConnectableLayerAddPreluLayer (const char *name=nullptr)
 
IConnectableLayerAddQuantizeLayer (const char *name=nullptr)
 
IConnectableLayerAddQLstmLayer (const QLstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
 
IConnectableLayerAddQuantizedLstmLayer (const QuantizedLstmInputParams &params, const char *name=nullptr)
 
IConnectableLayerAddRankLayer (const char *name=nullptr)
 
IConnectableLayerAddReduceLayer (const ReduceDescriptor &reduceDescriptor, const char *name=nullptr)
 
IConnectableLayerAddResizeLayer (const ResizeDescriptor &resizeDescriptor, const char *name=nullptr)
 
IConnectableLayerAddReshapeLayer (const ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr)
 
IConnectableLayerAddShapeLayer (const char *name=nullptr)
 
IConnectableLayerAddSliceLayer (const SliceDescriptor &sliceDescriptor, const char *name=nullptr)
 
IConnectableLayerAddSoftmaxLayer (const SoftmaxDescriptor &softmaxDescriptor, const char *name=nullptr)
 
IConnectableLayerAddSplitterLayer (const ViewsDescriptor &splitterDescriptor, const char *name=nullptr)
 
IConnectableLayerAddSpaceToBatchNdLayer (const SpaceToBatchNdDescriptor &spaceToBatchNdDescriptor, const char *name=nullptr)
 
IConnectableLayerAddSpaceToDepthLayer (const SpaceToDepthDescriptor &spaceToDepthDescriptor, const char *name=nullptr)
 
IConnectableLayerAddStackLayer (const StackDescriptor &stackDescriptor, const char *name=nullptr)
 
IConnectableLayerAddStandInLayer (const StandInDescriptor &descriptor, const char *name=nullptr)
 
IConnectableLayerAddStridedSliceLayer (const StridedSliceDescriptor &stridedSliceDescriptor, const char *name=nullptr)
 
IConnectableLayerAddSubtractionLayer (const char *name=nullptr)
 
IConnectableLayerAddSwitchLayer (const char *name=nullptr)
 
IConnectableLayerAddTransposeConvolution2dLayer (const TransposeConvolution2dDescriptor &descriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
 
IConnectableLayerAddTransposeLayer (const TransposeDescriptor &transposeDescriptor, const char *name=nullptr)
 
IConnectableLayerAddUnidirectionalSequenceLstmLayer (const UnidirectionalSequenceLstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
 
IConnectableLayerAddConvertFp16ToFp32Layer (const char *name=nullptr)
 
IConnectableLayerAddConvertFp32ToFp16Layer (const char *name=nullptr)
 
ARMNN_NO_DEPRECATE_WARN_BEGIN void Accept (ILayerVisitor &visitor) const
 
ARMNN_NO_DEPRECATE_WARN_END void ExecuteStrategy (IStrategy &strategy) const
 

Detailed Description

Private implementation of INetwork.

Definition at line 31 of file Network.hpp.

Constructor & Destructor Documentation

◆ NetworkImpl()

NetworkImpl ( NetworkOptions  networkOptions = {})

Definition at line 1888 of file Network.cpp.

1889 : m_NetworkOptions(networkOptions),
1890  m_Graph(std::make_unique<Graph>(GetShapeInferenceMethod(), GetAllowExpandedDims()))
1891 {}

◆ ~NetworkImpl()

Definition at line 1893 of file Network.cpp.

1894 {
1895 }

Member Function Documentation

◆ Accept()

ARMNN_NO_DEPRECATE_WARN_BEGIN void Accept ( ILayerVisitor &  visitor) const

Definition at line 2902 of file Network.cpp.

References ARMNN_NO_DEPRECATE_WARN_END, and NetworkImpl::GetGraph().

Referenced by NetworkImpl::GetGraph().

2903 {
2904  for (auto layer : GetGraph())
2905  {
2906  layer->Accept(visitor);
2907  };
2908 }
const Graph & GetGraph() const
Definition: Network.hpp:37

◆ AddActivationLayer()

IConnectableLayer * AddActivationLayer ( const ActivationDescriptor activationDescriptor,
const char *  name = nullptr 
)

Definition at line 2147 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2149 {
2150  return m_Graph->AddLayer<ActivationLayer>(activationDescriptor, name);
2151 }

◆ AddAdditionLayer()

IConnectableLayer * AddAdditionLayer ( const char *  name = nullptr)

Definition at line 2193 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2194 {
2195  return m_Graph->AddLayer<AdditionLayer>(name);
2196 }

◆ AddArgMinMaxLayer()

IConnectableLayer * AddArgMinMaxLayer ( const ArgMinMaxDescriptor desc,
const char *  name = nullptr 
)

Definition at line 2153 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2155 {
2156  return m_Graph->AddLayer<ArgMinMaxLayer>(argMinMaxDescriptor, name);
2157 }

◆ AddBatchNormalizationLayer()

IConnectableLayer * AddBatchNormalizationLayer ( const BatchNormalizationDescriptor desc,
const ConstTensor mean,
const ConstTensor variance,
const ConstTensor beta,
const ConstTensor gamma,
const char *  name = nullptr 
)

Definition at line 2208 of file Network.cpp.

References BatchNormalizationLayer::m_Mean.

Referenced by NetworkImpl::GetGraph(), TEST_SUITE(), and armnn::TEST_SUITE().

2214 {
2215  const auto layer = m_Graph->AddLayer<BatchNormalizationLayer>(desc, name);
2216 
2217  layer->m_Mean = std::make_shared<ScopedTensorHandle>(mean);
2218  layer->m_Variance = std::make_shared<ScopedTensorHandle>(variance);
2219  layer->m_Beta = std::make_shared<ScopedTensorHandle>(beta);
2220  layer->m_Gamma = std::make_shared<ScopedTensorHandle>(gamma);
2221 
2222  return layer;
2223 }

◆ AddBatchToSpaceNdLayer()

IConnectableLayer * AddBatchToSpaceNdLayer ( const BatchToSpaceNdDescriptor batchToSpaceNdDescriptor,
const char *  name = nullptr 
)

Definition at line 1908 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1910 {
1911  return m_Graph->AddLayer<BatchToSpaceNdLayer>(batchToSpaceNdDescriptor, name);
1912 }

◆ AddCastLayer()

IConnectableLayer * AddCastLayer ( const char *  name = nullptr)

Definition at line 1914 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1915 {
1916  return m_Graph->AddLayer<CastLayer>(name);
1917 }

◆ AddChannelShuffleLayer()

IConnectableLayer * AddChannelShuffleLayer ( const ChannelShuffleDescriptor channelShuffleDescriptor,
const char *  name = nullptr 
)

Definition at line 1918 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1920 {
1921  return m_Graph->AddLayer<ChannelShuffleLayer>(channelShuffleDescriptor, name);
1922 }

◆ AddComparisonLayer()

IConnectableLayer * AddComparisonLayer ( const ComparisonDescriptor comparisonDescriptor,
const char *  name = nullptr 
)

Definition at line 1924 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1926 {
1927  return m_Graph->AddLayer<ComparisonLayer>(comparisonDescriptor, name);
1928 }

◆ AddConcatLayer()

IConnectableLayer * AddConcatLayer ( const ConcatDescriptor concatDescriptor,
const char *  name = nullptr 
)

Definition at line 2024 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2026 {
2027  return m_Graph->AddLayer<ConcatLayer>(concatDescriptor, name);
2028 }

◆ AddConstantLayer()

IConnectableLayer * AddConstantLayer ( const ConstTensor input,
const char *  name = nullptr 
)

Definition at line 2264 of file Network.cpp.

References ConstantLayer::m_LayerOutput.

Referenced by NetworkImpl::GetGraph(), TEST_SUITE(), and armnn::TEST_SUITE().

2265 {
2266  auto layer = m_Graph->AddLayer<ConstantLayer>(name);
2267 
2268  layer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(input);
2269 
2270  return layer;
2271 }

◆ AddConvertFp16ToFp32Layer()

IConnectableLayer * AddConvertFp16ToFp32Layer ( const char *  name = nullptr)

Definition at line 2060 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2061 {
2062  return m_Graph->AddLayer<ConvertFp16ToFp32Layer>(name);
2063 }

◆ AddConvertFp32ToFp16Layer()

IConnectableLayer * AddConvertFp32ToFp16Layer ( const char *  name = nullptr)

Definition at line 2065 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2066 {
2067  return m_Graph->AddLayer<ConvertFp32ToFp16Layer>(name);
2068 }

◆ AddConvolution2dLayer() [1/4]

IConnectableLayer * AddConvolution2dLayer ( const Convolution2dDescriptor convolution2dDescriptor,
const char *  name = nullptr 
)

Definition at line 2030 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), TEST_SUITE(), and armnn::TEST_SUITE().

2032 {
2033  return m_Graph->AddLayer<Convolution2dLayer>(convolution2dDescriptor, name);
2034 }

◆ AddConvolution2dLayer() [2/4]

IConnectableLayer * AddConvolution2dLayer ( const Convolution2dDescriptor convolution2dDescriptor,
const ConstTensor weights,
const Optional< ConstTensor > &  biases,
const char *  name = nullptr 
)

Definition at line 2036 of file Network.cpp.

References OutputSlot::Connect(), Layer::GetOutputSlot(), OptionalBase::has_value(), ConstantLayer::m_LayerOutput, OutputSlot::SetTensorInfo(), and OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

2040 {
2041  auto layer = m_Graph->AddLayer<Convolution2dLayer>(convolution2dDescriptor, name);
2042  // Add a constant layer for weights
2043  ConstantLayer* weightsLayer = m_Graph->AddLayer<ConstantLayer>("Weights");
2044  weightsLayer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(weights);
2045  layer->m_Weight = std::make_shared<ScopedTensorHandle>(weights);
2046  weightsLayer->GetOutputSlot(0).SetTensorInfo(weightsLayer->m_LayerOutput->GetTensorInfo());
2047  weightsLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(1));
2048  // Add a constant layer for biases
2049  if (biases.has_value() && convolution2dDescriptor.m_BiasEnabled)
2050  {
2051  ConstantLayer* biasLayer = m_Graph->AddLayer<ConstantLayer>("Bias");
2052  biasLayer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(biases.value());
2053  layer->m_Bias = std::make_shared<ScopedTensorHandle>(biases.value());
2054  biasLayer->GetOutputSlot(0).SetTensorInfo(biasLayer->m_LayerOutput->GetTensorInfo());
2055  biasLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(2));
2056  }
2057  return layer;
2058 }

◆ AddConvolution2dLayer() [3/4]

IConnectableLayer* AddConvolution2dLayer ( const Convolution2dDescriptor convolution2dDescriptor,
const ConstTensor weights,
const char *  name = nullptr 
)

◆ AddConvolution2dLayer() [4/4]

IConnectableLayer* AddConvolution2dLayer ( const Convolution2dDescriptor convolution2dDescriptor,
const ConstTensor weights,
const ConstTensor biases,
const char *  name = nullptr 
)

◆ AddConvolution3dLayer()

IConnectableLayer * AddConvolution3dLayer ( const Convolution3dDescriptor convolution3dDescriptor,
const char *  name = nullptr 
)

Definition at line 2070 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2072 {
2073  return m_Graph->AddLayer<Convolution3dLayer>(convolution3dDescriptor, name);
2074 }

◆ AddDepthToSpaceLayer()

IConnectableLayer * AddDepthToSpaceLayer ( const DepthToSpaceDescriptor depthToSpaceDescriptor,
const char *  name = nullptr 
)

Definition at line 2076 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2078 {
2079  return m_Graph->AddLayer<DepthToSpaceLayer>(depthToSpaceDescriptor, name);
2080 }

◆ AddDepthwiseConvolution2dLayer() [1/2]

IConnectableLayer * AddDepthwiseConvolution2dLayer ( const DepthwiseConvolution2dDescriptor convolution2dDescriptor,
const char *  name = nullptr 
)

Definition at line 2082 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and armnn::TEST_SUITE().

2085 {
2086  return m_Graph->AddLayer<DepthwiseConvolution2dLayer>(convolution2dDescriptor, name);
2087 }

◆ AddDepthwiseConvolution2dLayer() [2/2]

IConnectableLayer * AddDepthwiseConvolution2dLayer ( const DepthwiseConvolution2dDescriptor convolution2dDescriptor,
const ConstTensor weights,
const Optional< ConstTensor > &  biases,
const char *  name = nullptr 
)

Definition at line 2089 of file Network.cpp.

References OutputSlot::Connect(), Layer::GetOutputSlot(), OptionalBase::has_value(), ConstantLayer::m_LayerOutput, OutputSlot::SetTensorInfo(), and OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

2094 {
2095  auto layer = m_Graph->AddLayer<DepthwiseConvolution2dLayer>(convolution2dDescriptor, name);
2096 
2097  // Add a constant layer for weights
2098  ConstantLayer* weightsLayer = m_Graph->AddLayer<ConstantLayer>("Weights");
2099  weightsLayer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(weights);
2100  layer->m_Weight = std::make_shared<ScopedTensorHandle>(weights);
2101 
2102  weightsLayer->GetOutputSlot(0).SetTensorInfo(weightsLayer->m_LayerOutput->GetTensorInfo());
2103  weightsLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(1));
2104 
2105  // Add a constant layer for biases
2106  if (biases.has_value() && convolution2dDescriptor.m_BiasEnabled)
2107  {
2108  ConstantLayer* biasLayer = m_Graph->AddLayer<ConstantLayer>("Bias");
2109  biasLayer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(biases.value());
2110  layer->m_Bias = std::make_shared<ScopedTensorHandle>(biases.value());
2111 
2112  biasLayer->GetOutputSlot(0).SetTensorInfo(biasLayer->m_LayerOutput->GetTensorInfo());
2113  biasLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(2));
2114  }
2115 
2116  return layer;
2117 }

◆ AddDequantizeLayer()

IConnectableLayer * AddDequantizeLayer ( const char *  name = nullptr)

Definition at line 2462 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2463 {
2464  return m_Graph->AddLayer<DequantizeLayer>(name);
2465 }

◆ AddDetectionPostProcessLayer()

IConnectableLayer * AddDetectionPostProcessLayer ( const DetectionPostProcessDescriptor descriptor,
const ConstTensor anchors,
const char *  name = nullptr 
)

Definition at line 2119 of file Network.cpp.

References DetectionPostProcessLayer::m_Anchors.

Referenced by NetworkImpl::GetGraph().

2121 {
2122  const auto layer = m_Graph->AddLayer<DetectionPostProcessLayer>(descriptor, name);
2123 
2124  layer->m_Anchors = std::make_shared<ScopedTensorHandle>(anchors);
2125 
2126  return layer;
2127 }

◆ AddDivisionLayer()

IConnectableLayer * AddDivisionLayer ( const char *  name = nullptr)

Definition at line 2437 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2438 {
2439  return m_Graph->AddLayer<DivisionLayer>(name);
2440 }

◆ AddElementwiseUnaryLayer()

IConnectableLayer * AddElementwiseUnaryLayer ( const ElementwiseUnaryDescriptor elementwiseUnaryDescriptor,
const char *  name = nullptr 
)

Definition at line 1930 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1932 {
1933  return m_Graph->AddLayer<ElementwiseUnaryLayer>(elementwiseUnaryDescriptor, name);
1934 }

◆ AddFillLayer()

IConnectableLayer * AddFillLayer ( const FillDescriptor fillDescriptor,
const char *  name = nullptr 
)

Definition at line 1936 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1938 {
1939  return m_Graph->AddLayer<FillLayer>(fillDescriptor, name);
1940 }

◆ AddFloorLayer()

IConnectableLayer * AddFloorLayer ( const char *  name = nullptr)

Definition at line 2291 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2292 {
2293  return m_Graph->AddLayer<FloorLayer>(name);
2294 }

◆ AddFullyConnectedLayer() [1/2]

IConnectableLayer * AddFullyConnectedLayer ( const FullyConnectedDescriptor fullyConnectedDescriptor,
const char *  name = nullptr 
)

Definition at line 1942 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), TEST_SUITE(), and armnn::TEST_SUITE().

1944 {
1945  return m_Graph->AddLayer<FullyConnectedLayer>(fullyConnectedDescriptor, name);
1946 }

◆ AddFullyConnectedLayer() [2/2]

IConnectableLayer * AddFullyConnectedLayer ( const FullyConnectedDescriptor fullyConnectedDescriptor,
const Optional< ConstTensor > &  weights,
const Optional< ConstTensor > &  biases,
const char *  name = nullptr 
)

Definition at line 1948 of file Network.cpp.

References OutputSlot::Connect(), FullyConnectedDescriptor::GetNumInputs(), Layer::GetOutputSlot(), OptionalBase::has_value(), FullyConnectedDescriptor::m_BiasEnabled, FullyConnectedDescriptor::m_ConstantWeights, ConstantLayer::m_LayerOutput, OutputSlot::SetTensorInfo(), and OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

1952 {
1953  ConstantLayer* weightsLayer = nullptr;
1954  ConstantLayer* biasLayer = nullptr;
1955  unsigned int numInputs = fullyConnectedDescriptor.GetNumInputs();
1956 
1957  // Add a constant layer for weights
1958  if (weights.has_value())
1959  {
1960  weightsLayer = m_Graph->AddLayer<ConstantLayer>("Weights");
1961  weightsLayer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(weights.value());
1962 
1963  TensorInfo weightsInfo = weightsLayer->m_LayerOutput->GetTensorInfo();
1964  weightsInfo.SetConstant();
1965 
1966  weightsLayer->GetOutputSlot(0).SetTensorInfo(weightsInfo);
1967  }
1968  else if (fullyConnectedDescriptor.m_ConstantWeights)
1969  {
1970  throw InvalidArgumentException("AddFullyConnectedLayer: Constant weights tensor is empty.");
1971  }
1972 
1973  // Add a constant layer for biases
1974  if (biases.has_value() && fullyConnectedDescriptor.m_BiasEnabled)
1975  {
1976  biasLayer = m_Graph->AddLayer<ConstantLayer>("Biases");
1977  biasLayer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(biases.value());
1978 
1979  TensorInfo biasInfo = biasLayer->m_LayerOutput->GetTensorInfo();
1980  biasInfo.SetConstant();
1981 
1982  biasLayer->GetOutputSlot(0).SetTensorInfo(biasInfo);
1983  }
1984 
1985  if (numInputs < 2)
1986  {
1987  throw InvalidArgumentException("AddFullyConnectedLayer: Requires at least 2 input tensors: Input, Weights");
1988  }
1989 
1990  auto layer = m_Graph->AddLayer<FullyConnectedLayer>(fullyConnectedDescriptor, name);
1991 
1992  if (weightsLayer)
1993  {
1994  // Connect weights layer
1995  weightsLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(1));
1996  }
1997 
1998  if ( fullyConnectedDescriptor.m_BiasEnabled && numInputs == 3 )
1999  {
2000  if (biasLayer)
2001  {
2002  // Connect bias layer
2003  biasLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(2));
2004  }
2005  }
2006  else if ( !fullyConnectedDescriptor.m_BiasEnabled && numInputs == 2 )
2007  {
2008  // Bias is disabled
2009  layer->m_Bias = nullptr;
2010  }
2011  else
2012  {
2013  throw InvalidArgumentException(fmt::format(
2014  "AddFullyConnectedLayer: Value mismatch. When bias is enabled in the "
2015  "descriptor the number of inputs is expected to be 3 otherwise 2. "
2016  "BiasEnabled={}, numInputs={}",
2017  fullyConnectedDescriptor.m_BiasEnabled,
2018  numInputs));
2019  }
2020 
2021  return layer;
2022 }

◆ AddGatherLayer()

IConnectableLayer * AddGatherLayer ( const GatherDescriptor gatherDescriptor,
const char *  name = nullptr 
)

Definition at line 2473 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2475 {
2476  return m_Graph->AddLayer<GatherLayer>(gatherDescriptor, name);
2477 }

◆ AddGatherNdLayer()

IConnectableLayer * AddGatherNdLayer ( const char *  name = nullptr)

Definition at line 2479 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2480 {
2481  return m_Graph->AddLayer<GatherNdLayer>(name);
2482 }

◆ AddInputLayer()

IConnectableLayer * AddInputLayer ( LayerBindingId  id,
const char *  name = nullptr 
)

Definition at line 1903 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), armnn::TEST_SUITE(), and TEST_SUITE().

1904 {
1905  return m_Graph->AddLayer<InputLayer>(id, name);
1906 }

◆ AddInstanceNormalizationLayer()

IConnectableLayer * AddInstanceNormalizationLayer ( const InstanceNormalizationDescriptor desc,
const char *  name = nullptr 
)

Definition at line 2246 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2248 {
2249  return m_Graph->AddLayer<InstanceNormalizationLayer>(desc, name);
2250 }

◆ AddL2NormalizationLayer()

IConnectableLayer * AddL2NormalizationLayer ( const L2NormalizationDescriptor desc,
const char *  name = nullptr 
)

Definition at line 2252 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2254 {
2255  return m_Graph->AddLayer<L2NormalizationLayer>(desc, name);
2256 }

◆ AddLogicalBinaryLayer()

IConnectableLayer * AddLogicalBinaryLayer ( const LogicalBinaryDescriptor logicalBinaryDescriptor,
const char *  name = nullptr 
)

Definition at line 2720 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2722 {
2723  return m_Graph->AddLayer<LogicalBinaryLayer>(logicalBinaryDescriptor, name);
2724 }

◆ AddLogSoftmaxLayer()

IConnectableLayer * AddLogSoftmaxLayer ( const LogSoftmaxDescriptor logSoftmaxDescriptor,
const char *  name = nullptr 
)

Definition at line 2258 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2260 {
2261  return m_Graph->AddLayer<LogSoftmaxLayer>(desc, name);
2262 }

◆ AddLstmLayer()

IConnectableLayer * AddLstmLayer ( const LstmDescriptor descriptor,
const LstmInputParams params,
const char *  name = nullptr 
)

Definition at line 2296 of file Network.cpp.

References LstmLayer::m_BasicParameters, LstmInputParams::m_CellBias, LstmInputParams::m_CellLayerNormWeights, LstmInputParams::m_CellToForgetWeights, LstmInputParams::m_CellToInputWeights, LstmInputParams::m_CellToOutputWeights, LstmInputParams::m_ForgetGateBias, LstmInputParams::m_ForgetLayerNormWeights, LstmInputParams::m_InputGateBias, LstmInputParams::m_InputLayerNormWeights, LstmInputParams::m_InputToCellWeights, LstmInputParams::m_InputToForgetWeights, LstmBasicParameters::m_InputToForgetWeights, LstmInputParams::m_InputToInputWeights, LstmInputParams::m_InputToOutputWeights, LstmInputParams::m_OutputGateBias, LstmInputParams::m_OutputLayerNormWeights, LstmInputParams::m_ProjectionBias, LstmInputParams::m_ProjectionWeights, LstmInputParams::m_RecurrentToCellWeights, LstmInputParams::m_RecurrentToForgetWeights, LstmInputParams::m_RecurrentToInputWeights, and LstmInputParams::m_RecurrentToOutputWeights.

Referenced by NetworkImpl::GetGraph(), and armnn::TEST_SUITE().

2299 {
2300  const auto layer = m_Graph->AddLayer<LstmLayer>(descriptor, name);
2301 
2302  //Lstm Basic Parameters
2303  layer->m_BasicParameters.m_InputToForgetWeights =
2304  std::make_shared<ScopedTensorHandle>(*(params.m_InputToForgetWeights));
2305  layer->m_BasicParameters.m_InputToCellWeights =
2306  std::make_shared<ScopedTensorHandle>(*(params.m_InputToCellWeights));
2307  layer->m_BasicParameters.m_InputToOutputWeights =
2308  std::make_shared<ScopedTensorHandle>(*(params.m_InputToOutputWeights));
2309  layer->m_BasicParameters.m_RecurrentToForgetWeights =
2310  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToForgetWeights));
2311  layer->m_BasicParameters.m_RecurrentToCellWeights =
2312  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToCellWeights));
2313  layer->m_BasicParameters.m_RecurrentToOutputWeights =
2314  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToOutputWeights));
2315  layer->m_BasicParameters.m_ForgetGateBias =
2316  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetGateBias));
2317  layer->m_BasicParameters.m_CellBias =
2318  std::make_shared<ScopedTensorHandle>(*(params.m_CellBias));
2319  layer->m_BasicParameters.m_OutputGateBias =
2320  std::make_shared<ScopedTensorHandle>(*(params.m_OutputGateBias));
2321 
2322  //Lstm Cifg parameters
2323  if(!descriptor.m_CifgEnabled)
2324  {
2325  if(params.m_InputToInputWeights == nullptr)
2326  {
2327  throw InvalidArgumentException("AddLstmLayer: Input To Input Weights cannot be NULL "
2328  "when CIFG is disabled.");
2329  }
2330  if(params.m_RecurrentToInputWeights == nullptr)
2331  {
2332  throw InvalidArgumentException(
2333  "AddLstmLayer: Recurrent To Input Weights cannot be NULL "
2334  "when CIFG is disabled.");
2335  }
2336  if(params.m_InputGateBias == nullptr)
2337  {
2338  throw InvalidArgumentException("AddLstmLayer: Input Gate Bias cannot be NULL "
2339  "when CIFG is disabled.");
2340  }
2341  layer->m_CifgParameters.m_InputToInputWeights =
2342  std::make_shared<ScopedTensorHandle>(*(params.m_InputToInputWeights));
2343  layer->m_CifgParameters.m_RecurrentToInputWeights =
2344  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToInputWeights));
2345  layer->m_CifgParameters.m_InputGateBias =
2346  std::make_shared<ScopedTensorHandle>(*(params.m_InputGateBias));
2347  }
2348 
2349  //Lstm projection parameters
2350  if(descriptor.m_ProjectionEnabled)
2351  {
2352  if(params.m_ProjectionWeights == nullptr)
2353  {
2354  throw InvalidArgumentException("AddLstmLayer: Projection Weights cannot be NULL "
2355  "when projection is enabled.");
2356  }
2357  layer->m_ProjectionParameters.m_ProjectionWeights =
2358  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionWeights));
2359  if(params.m_ProjectionBias != nullptr)
2360  {
2361  layer->m_ProjectionParameters.m_ProjectionBias =
2362  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionBias));
2363  }
2364  }
2365 
2366  //Lstm Peephole params
2367  if(descriptor.m_PeepholeEnabled)
2368  {
2369  if(!descriptor.m_CifgEnabled)
2370  {
2371  if(params.m_CellToInputWeights == nullptr)
2372  {
2373  throw InvalidArgumentException("AddLstmLayer: Cell To Input Weights cannot be NULL "
2374  "when Peephole is enabled and CIFG disabled.");
2375  }
2376 
2377  layer->m_PeepholeParameters.m_CellToInputWeights =
2378  std::make_shared<ScopedTensorHandle>(*(params.m_CellToInputWeights));
2379  }
2380 
2381  if(params.m_CellToForgetWeights == nullptr)
2382  {
2383  throw InvalidArgumentException("AddLstmLayer: Cell To Forget Weights cannot be NULL "
2384  "when Peephole is enabled.");
2385  }
2386  if(params.m_CellToOutputWeights == nullptr)
2387  {
2388  throw InvalidArgumentException("AddLstmLayer: Cell To Output Weights cannot be NULL "
2389  "when Peephole is enabled.");
2390  }
2391 
2392  layer->m_PeepholeParameters.m_CellToForgetWeights =
2393  std::make_shared<ScopedTensorHandle>(*(params.m_CellToForgetWeights));
2394  layer->m_PeepholeParameters.m_CellToOutputWeights =
2395  std::make_shared<ScopedTensorHandle>(*(params.m_CellToOutputWeights));
2396  }
2397 
2398  //Lstm Layer Normalization params
2399  if(descriptor.m_LayerNormEnabled)
2400  {
2401  if(!descriptor.m_CifgEnabled)
2402  {
2403  if(params.m_InputLayerNormWeights == nullptr)
2404  {
2405  throw InvalidArgumentException("AddLstmLayer: Input layer normalization weights cannot be NULL "
2406  "when layer normalization is enabled and CIFG disabled.");
2407  }
2408  layer->m_LayerNormParameters.m_InputLayerNormWeights =
2409  std::make_shared<ScopedTensorHandle>(*(params.m_InputLayerNormWeights));
2410  }
2411 
2412  if(params.m_ForgetLayerNormWeights == nullptr)
2413  {
2414  throw InvalidArgumentException("AddLstmLayer: Forget layer normalization weights cannot be NULL "
2415  "when layer normalization is enabled.");
2416  }
2417  if(params.m_CellLayerNormWeights == nullptr)
2418  {
2419  throw InvalidArgumentException("AddLstmLayer: Cell layer normalization weights cannot be NULL "
2420  "when layer normalization is enabled.");
2421  }
2422  if(params.m_OutputLayerNormWeights == nullptr)
2423  {
2424  throw InvalidArgumentException("AddLstmLayer: Output layer normalization weights cannot be NULL "
2425  "when layer normalization is enabled.");
2426  }
2427  layer->m_LayerNormParameters.m_ForgetLayerNormWeights =
2428  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetLayerNormWeights));
2429  layer->m_LayerNormParameters.m_CellLayerNormWeights =
2430  std::make_shared<ScopedTensorHandle>(*(params.m_CellLayerNormWeights));
2431  layer->m_LayerNormParameters.m_OutputLayerNormWeights =
2432  std::make_shared<ScopedTensorHandle>(*(params.m_OutputLayerNormWeights));
2433  }
2434  return layer;
2435 }

◆ AddMaximumLayer()

IConnectableLayer * AddMaximumLayer ( const char *  name = nullptr)

Definition at line 2183 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2184 {
2185  return m_Graph->AddLayer<MaximumLayer>(name);
2186 }

◆ AddMeanLayer()

IConnectableLayer * AddMeanLayer ( const MeanDescriptor meanDescriptor,
const char *  name = nullptr 
)

Definition at line 2447 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2448 {
2449  return m_Graph->AddLayer<MeanLayer>(meanDescriptor,name);
2450 }

◆ AddMergeLayer()

IConnectableLayer * AddMergeLayer ( const char *  name = nullptr)

Definition at line 2484 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2485 {
2486  return m_Graph->AddLayer<MergeLayer>(name);
2487 }

◆ AddMinimumLayer()

IConnectableLayer * AddMinimumLayer ( const char *  name = nullptr)

Definition at line 2188 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2189 {
2190  return m_Graph->AddLayer<MinimumLayer>(name);
2191 }

◆ AddMultiplicationLayer()

IConnectableLayer * AddMultiplicationLayer ( const char *  name = nullptr)

Definition at line 2198 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2199 {
2200  return m_Graph->AddLayer<MultiplicationLayer>(name);
2201 }

◆ AddNormalizationLayer()

IConnectableLayer * AddNormalizationLayer ( const NormalizationDescriptor normalizationDescriptor,
const char *  name = nullptr 
)

Definition at line 2159 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2162 {
2163  return m_Graph->AddLayer<NormalizationLayer>(normalizationDescriptor, name);
2164 }

◆ AddOutputLayer()

IConnectableLayer * AddOutputLayer ( LayerBindingId  id,
const char *  name = nullptr 
)

Definition at line 2203 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), armnn::TEST_SUITE(), and TEST_SUITE().

2204 {
2205  return m_Graph->AddLayer<OutputLayer>(id, name);
2206 }

◆ AddPadLayer()

IConnectableLayer * AddPadLayer ( const PadDescriptor padDescriptor,
const char *  name = nullptr 
)

Definition at line 2452 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2453 {
2454  return m_Graph->AddLayer<PadLayer>(padDescriptor,name);
2455 }

◆ AddPermuteLayer()

IConnectableLayer * AddPermuteLayer ( const PermuteDescriptor permuteDescriptor,
const char *  name = nullptr 
)

Definition at line 2129 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2131 {
2132  return m_Graph->AddLayer<PermuteLayer>(permuteDescriptor, name);
2133 }

◆ AddPooling2dLayer()

IConnectableLayer * AddPooling2dLayer ( const Pooling2dDescriptor pooling2dDescriptor,
const char *  name = nullptr 
)

Definition at line 2135 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2137 {
2138  return m_Graph->AddLayer<Pooling2dLayer>(pooling2dDescriptor, name);
2139 }

◆ AddPooling3dLayer()

IConnectableLayer * AddPooling3dLayer ( const Pooling3dDescriptor pooling3dDescriptor,
const char *  name = nullptr 
)

Definition at line 2141 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2143 {
2144  return m_Graph->AddLayer<Pooling3dLayer>(pooling3dDescriptor, name);
2145 }

◆ AddPrecompiledLayer()

IConnectableLayer * AddPrecompiledLayer ( const PreCompiledDescriptor preCompiledDescriptor,
CompiledBlobPtr  compiledBlobPtr,
const Optional< BackendId > &  backend,
const char *  name = nullptr 
)

Definition at line 2868 of file Network.cpp.

References ARMNN_NO_DEPRECATE_WARN_BEGIN, Layer::GetBackendHint(), OptionalBase::has_value(), Layer::SetBackendId(), PreCompiledLayer::SetPreCompiledObject(), and OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by NetworkImpl::GetGraph().

2872 {
2873  // Method use is for backend users.
2874  PreCompiledLayer* layer;
2875  if (name)
2876  {
2877  layer = m_Graph->AddLayer<PreCompiledLayer>(preCompiledDescriptor, name);
2878  }
2879  else
2880  {
2881  layer = m_Graph->AddLayer<PreCompiledLayer>(preCompiledDescriptor, "pre-compiled");
2882  }
2883 
2884  // Assign the pre-compiled object to layer
2885  // Pass only one compiled network, Arm NN does not handle multiple
2886  // pre-compiled objects in a single pre-compiled layer currently
2887  layer->SetPreCompiledObject(std::move(compiledBlobPtr));
2888 
2889  if (backend.has_value())
2890  {
2891  layer->SetBackendId(backend.value());
2892  }
2893  else if (layer->GetBackendHint().has_value())
2894  {
2895  layer->SetBackendId(layer->GetBackendHint().value());
2896  }
2897 
2898  return layer;
2899 }

◆ AddPreluLayer()

IConnectableLayer * AddPreluLayer ( const char *  name = nullptr)

Definition at line 2494 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2495 {
2496  return m_Graph->AddLayer<PreluLayer>(name);
2497 }

◆ AddQLstmLayer()

IConnectableLayer * AddQLstmLayer ( const QLstmDescriptor descriptor,
const LstmInputParams params,
const char *  name = nullptr 
)

Definition at line 2578 of file Network.cpp.

References QLstmLayer::m_BasicParameters, LstmInputParams::m_CellBias, LstmInputParams::m_CellLayerNormWeights, LstmInputParams::m_CellToForgetWeights, LstmInputParams::m_CellToInputWeights, LstmInputParams::m_CellToOutputWeights, LstmInputParams::m_ForgetGateBias, LstmInputParams::m_ForgetLayerNormWeights, LstmInputParams::m_InputGateBias, LstmInputParams::m_InputLayerNormWeights, LstmInputParams::m_InputToCellWeights, QLstmBasicParameters::m_InputToForgetWeights, LstmInputParams::m_InputToForgetWeights, LstmInputParams::m_InputToInputWeights, LstmInputParams::m_InputToOutputWeights, LstmInputParams::m_OutputGateBias, LstmInputParams::m_OutputLayerNormWeights, LstmInputParams::m_ProjectionBias, LstmInputParams::m_ProjectionWeights, LstmInputParams::m_RecurrentToCellWeights, LstmInputParams::m_RecurrentToForgetWeights, LstmInputParams::m_RecurrentToInputWeights, and LstmInputParams::m_RecurrentToOutputWeights.

Referenced by NetworkImpl::GetGraph(), and armnn::TEST_SUITE().

2581 {
2582  const auto layer = m_Graph->AddLayer<QLstmLayer>(descriptor, name);
2583 
2584  // QLstm Basic Parameters
2585  layer->m_BasicParameters.m_InputToForgetWeights =
2586  std::make_shared<ScopedTensorHandle>(*(params.m_InputToForgetWeights));
2587  layer->m_BasicParameters.m_InputToCellWeights =
2588  std::make_shared<ScopedTensorHandle>(*(params.m_InputToCellWeights));
2589  layer->m_BasicParameters.m_InputToOutputWeights =
2590  std::make_shared<ScopedTensorHandle>(*(params.m_InputToOutputWeights));
2591  layer->m_BasicParameters.m_RecurrentToForgetWeights =
2592  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToForgetWeights));
2593  layer->m_BasicParameters.m_RecurrentToCellWeights =
2594  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToCellWeights));
2595  layer->m_BasicParameters.m_RecurrentToOutputWeights =
2596  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToOutputWeights));
2597  layer->m_BasicParameters.m_ForgetGateBias =
2598  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetGateBias));
2599  layer->m_BasicParameters.m_CellBias =
2600  std::make_shared<ScopedTensorHandle>(*(params.m_CellBias));
2601  layer->m_BasicParameters.m_OutputGateBias =
2602  std::make_shared<ScopedTensorHandle>(*(params.m_OutputGateBias));
2603 
2604  // QLstm Cifg parameters
2605  if(!descriptor.m_CifgEnabled)
2606  {
2607  if(params.m_InputToInputWeights == nullptr)
2608  {
2609  throw InvalidArgumentException("AddQLstmLayer: Input To Input Weights cannot be NULL");
2610  }
2611 
2612  if(params.m_RecurrentToInputWeights == nullptr)
2613  {
2614  throw InvalidArgumentException(
2615  "AddQLstmLayer: Recurrent To Input Weights cannot be NULL");
2616  }
2617 
2618  if(params.m_InputGateBias == nullptr)
2619  {
2620  throw InvalidArgumentException("AddQLstmLayer: Input Gate Bias cannot be NULL");
2621  }
2622 
2623  layer->m_CifgParameters.m_InputToInputWeights =
2624  std::make_shared<ScopedTensorHandle>(*(params.m_InputToInputWeights));
2625  layer->m_CifgParameters.m_RecurrentToInputWeights =
2626  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToInputWeights));
2627  layer->m_CifgParameters.m_InputGateBias =
2628  std::make_shared<ScopedTensorHandle>(*(params.m_InputGateBias));
2629  }
2630 
2631  // QLstm Projection parameters
2632  if(descriptor.m_ProjectionEnabled)
2633  {
2634  if(params.m_ProjectionWeights == nullptr)
2635  {
2636  throw InvalidArgumentException("AddQLstmLayer: Projection Weights cannot be NULL");
2637  }
2638 
2639  layer->m_ProjectionParameters.m_ProjectionWeights =
2640  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionWeights));
2641 
2642  // Projection bias is optional even if projection is enabled
2643  if(params.m_ProjectionBias != nullptr)
2644  {
2645  layer->m_ProjectionParameters.m_ProjectionBias =
2646  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionBias));
2647  }
2648 
2649  }
2650 
2651  // QLstm Peephole params
2652  if(descriptor.m_PeepholeEnabled)
2653  {
2654  if(params.m_CellToForgetWeights == nullptr)
2655  {
2656  throw InvalidArgumentException("AddQLstmLayer: Cell To Forget Weights cannot be NULL");
2657  }
2658 
2659  if(params.m_CellToOutputWeights == nullptr)
2660  {
2661  throw InvalidArgumentException("AddQLstmLayer: Cell To Output Weights cannot be NULL");
2662  }
2663 
2664  if(!descriptor.m_CifgEnabled)
2665  {
2666  if(params.m_CellToInputWeights == nullptr)
2667  {
2668  throw InvalidArgumentException("AddQLstmLayer: Cell To Input Weights cannot be NULL");
2669  }
2670 
2671  layer->m_PeepholeParameters.m_CellToInputWeights =
2672  std::make_shared<ScopedTensorHandle>(*(params.m_CellToInputWeights));
2673  }
2674 
2675  layer->m_PeepholeParameters.m_CellToForgetWeights =
2676  std::make_shared<ScopedTensorHandle>(*(params.m_CellToForgetWeights));
2677  layer->m_PeepholeParameters.m_CellToOutputWeights =
2678  std::make_shared<ScopedTensorHandle>(*(params.m_CellToOutputWeights));
2679  }
2680 
2681  // QLstm Layer Normalization params
2682  if(descriptor.m_LayerNormEnabled)
2683  {
2684  if(params.m_ForgetLayerNormWeights == nullptr)
2685  {
2686  throw InvalidArgumentException("AddQLstmLayer: Forget layer normalization weights cannot be NULL");
2687  }
2688 
2689  if(params.m_CellLayerNormWeights == nullptr)
2690  {
2691  throw InvalidArgumentException("AddQLstmLayer: Cell layer normalization weights cannot be NULL");
2692  }
2693 
2694  if(params.m_OutputLayerNormWeights == nullptr)
2695  {
2696  throw InvalidArgumentException("AddQLstmLayer: Output layer normalization weights cannot be NULL");
2697  }
2698 
2699  if(!descriptor.m_CifgEnabled)
2700  {
2701  if(params.m_InputLayerNormWeights == nullptr)
2702  {
2703  throw InvalidArgumentException("AddQLstmLayer: Input layer normalization weights cannot be NULL");
2704  }
2705 
2706  layer->m_LayerNormParameters.m_InputLayerNormWeights =
2707  std::make_shared<ScopedTensorHandle>(*(params.m_InputLayerNormWeights));
2708  }
2709 
2710  layer->m_LayerNormParameters.m_ForgetLayerNormWeights =
2711  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetLayerNormWeights));
2712  layer->m_LayerNormParameters.m_CellLayerNormWeights =
2713  std::make_shared<ScopedTensorHandle>(*(params.m_CellLayerNormWeights));
2714  layer->m_LayerNormParameters.m_OutputLayerNormWeights =
2715  std::make_shared<ScopedTensorHandle>(*(params.m_OutputLayerNormWeights));
2716  }
2717  return layer;
2718 }

◆ AddQuantizedLstmLayer()

IConnectableLayer * AddQuantizedLstmLayer ( const QuantizedLstmInputParams params,
const char *  name = nullptr 
)

Definition at line 2540 of file Network.cpp.

References QuantizedLstmInputParams::GetCellBias(), QuantizedLstmInputParams::GetForgetGateBias(), QuantizedLstmInputParams::GetInputGateBias(), QuantizedLstmInputParams::GetInputToCellWeights(), QuantizedLstmInputParams::GetInputToForgetWeights(), QuantizedLstmInputParams::GetInputToInputWeights(), QuantizedLstmInputParams::GetInputToOutputWeights(), QuantizedLstmInputParams::GetOutputGateBias(), QuantizedLstmInputParams::GetRecurrentToCellWeights(), QuantizedLstmInputParams::GetRecurrentToForgetWeights(), QuantizedLstmInputParams::GetRecurrentToInputWeights(), QuantizedLstmInputParams::GetRecurrentToOutputWeights(), QuantizedLstmParameters::m_InputToInputWeights, and QuantizedLstmLayer::m_QuantizedLstmParameters.

Referenced by NetworkImpl::GetGraph(), and armnn::TEST_SUITE().

2542 {
2543  const auto layer = m_Graph->AddLayer<QuantizedLstmLayer>(name);
2544 
2545  // InputToX weights
2546  layer->m_QuantizedLstmParameters.m_InputToInputWeights =
2547  std::make_shared<ScopedTensorHandle>(params.GetInputToInputWeights());
2548  layer->m_QuantizedLstmParameters.m_InputToForgetWeights =
2549  std::make_shared<ScopedTensorHandle>(params.GetInputToForgetWeights());
2550  layer->m_QuantizedLstmParameters.m_InputToCellWeights =
2551  std::make_shared<ScopedTensorHandle>(params.GetInputToCellWeights());
2552  layer->m_QuantizedLstmParameters.m_InputToOutputWeights =
2553  std::make_shared<ScopedTensorHandle>(params.GetInputToOutputWeights());
2554 
2555  // RecurrentToX weights
2556  layer->m_QuantizedLstmParameters.m_RecurrentToInputWeights =
2557  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToInputWeights());
2558  layer->m_QuantizedLstmParameters.m_RecurrentToForgetWeights =
2559  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToForgetWeights());
2560  layer->m_QuantizedLstmParameters.m_RecurrentToCellWeights =
2561  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToCellWeights());
2562  layer->m_QuantizedLstmParameters.m_RecurrentToOutputWeights =
2563  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToOutputWeights());
2564 
2565  // Bias
2566  layer->m_QuantizedLstmParameters.m_InputGateBias =
2567  std::make_shared<ScopedTensorHandle>(params.GetInputGateBias());
2568  layer->m_QuantizedLstmParameters.m_ForgetGateBias =
2569  std::make_shared<ScopedTensorHandle>(params.GetForgetGateBias());
2570  layer->m_QuantizedLstmParameters.m_CellBias =
2571  std::make_shared<ScopedTensorHandle>(params.GetCellBias());
2572  layer->m_QuantizedLstmParameters.m_OutputGateBias =
2573  std::make_shared<ScopedTensorHandle>(params.GetOutputGateBias());
2574 
2575  return layer;
2576 }

◆ AddQuantizeLayer()

IConnectableLayer * AddQuantizeLayer ( const char *  name = nullptr)

Definition at line 2457 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2458 {
2459  return m_Graph->AddLayer<QuantizeLayer>(name);
2460 }

◆ AddRankLayer()

IConnectableLayer * AddRankLayer ( const char *  name = nullptr)

Definition at line 2225 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2226 {
2227  return m_Graph->AddLayer<RankLayer>(name);
2228 }

◆ AddReduceLayer()

IConnectableLayer * AddReduceLayer ( const ReduceDescriptor reduceDescriptor,
const char *  name = nullptr 
)

Definition at line 2230 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2232 {
2233  return m_Graph->AddLayer<ReduceLayer>(reduceDescriptor, name);
2234 }

◆ AddReshapeLayer()

IConnectableLayer * AddReshapeLayer ( const ReshapeDescriptor reshapeDescriptor,
const char *  name = nullptr 
)

Definition at line 2273 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2275 {
2276  return m_Graph->AddLayer<ReshapeLayer>(reshapeDescriptor, name);
2277 }

◆ AddResizeLayer()

IConnectableLayer * AddResizeLayer ( const ResizeDescriptor resizeDescriptor,
const char *  name = nullptr 
)

Definition at line 2236 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2237 {
2238  return m_Graph->AddLayer<ResizeLayer>(resizeDescriptor, name);
2239 }

◆ AddShapeLayer()

IConnectableLayer * AddShapeLayer ( const char *  name = nullptr)

Definition at line 2241 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2242 {
2243  return m_Graph->AddLayer<ShapeLayer>(name);
2244 }

◆ AddSliceLayer()

IConnectableLayer * AddSliceLayer ( const SliceDescriptor sliceDescriptor,
const char *  name = nullptr 
)

Definition at line 2166 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2167 {
2168  return m_Graph->AddLayer<SliceLayer>(sliceDescriptor, name);
2169 }

◆ AddSoftmaxLayer()

IConnectableLayer * AddSoftmaxLayer ( const SoftmaxDescriptor softmaxDescriptor,
const char *  name = nullptr 
)

Definition at line 2171 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2173 {
2174  return m_Graph->AddLayer<SoftmaxLayer>(softmaxDescriptor, name);
2175 }

◆ AddSpaceToBatchNdLayer()

IConnectableLayer * AddSpaceToBatchNdLayer ( const SpaceToBatchNdDescriptor spaceToBatchNdDescriptor,
const char *  name = nullptr 
)

Definition at line 2279 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2281 {
2282  return m_Graph->AddLayer<SpaceToBatchNdLayer>(spaceToBatchNdDescriptor, name);
2283 }

◆ AddSpaceToDepthLayer()

IConnectableLayer * AddSpaceToDepthLayer ( const SpaceToDepthDescriptor spaceToDepthDescriptor,
const char *  name = nullptr 
)

Definition at line 2285 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2287 {
2288  return m_Graph->AddLayer<SpaceToDepthLayer>(spaceToDepthDescriptor, name);
2289 }

◆ AddSplitterLayer()

IConnectableLayer * AddSplitterLayer ( const ViewsDescriptor splitterDescriptor,
const char *  name = nullptr 
)

Definition at line 2177 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2179 {
2180  return m_Graph->AddLayer<SplitterLayer>(splitterDescriptor, name);
2181 }

◆ AddStackLayer()

IConnectableLayer * AddStackLayer ( const StackDescriptor stackDescriptor,
const char *  name = nullptr 
)

Definition at line 2527 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2529 {
2530  return m_Graph->AddLayer<StackLayer>(stackDescriptor, name);
2531 }

◆ AddStandInLayer()

IConnectableLayer * AddStandInLayer ( const StandInDescriptor descriptor,
const char *  name = nullptr 
)

Definition at line 2534 of file Network.cpp.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

2536 {
2537  return m_Graph->AddLayer<StandInLayer>(desc, name);
2538 }

◆ AddStridedSliceLayer()

IConnectableLayer * AddStridedSliceLayer ( const StridedSliceDescriptor stridedSliceDescriptor,
const char *  name = nullptr 
)

Definition at line 2467 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2469 {
2470  return m_Graph->AddLayer<StridedSliceLayer>(stridedSliceDescriptor, name);
2471 }

◆ AddSubtractionLayer()

IConnectableLayer * AddSubtractionLayer ( const char *  name = nullptr)

Definition at line 2442 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2443 {
2444  return m_Graph->AddLayer<SubtractionLayer>(name);
2445 }

◆ AddSwitchLayer()

IConnectableLayer * AddSwitchLayer ( const char *  name = nullptr)

Definition at line 2489 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2490 {
2491  return m_Graph->AddLayer<SwitchLayer>(name);
2492 }

◆ AddTransposeConvolution2dLayer()

IConnectableLayer * AddTransposeConvolution2dLayer ( const TransposeConvolution2dDescriptor descriptor,
const ConstTensor weights,
const Optional< ConstTensor > &  biases,
const char *  name = nullptr 
)

Definition at line 2499 of file Network.cpp.

References OptionalBase::has_value(), TransposeConvolution2dDescriptor::m_BiasEnabled, TransposeConvolution2dLayer::m_Weight, and OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by NetworkImpl::GetGraph().

2503 {
2504  if (descriptor.m_BiasEnabled && !biases.has_value())
2505  {
2506  throw InvalidArgumentException("AddTransposeConvolution2dLayer: Biases cannot be empty");
2507  }
2508 
2509  const auto layer = m_Graph->AddLayer<TransposeConvolution2dLayer>(descriptor, name);
2510 
2511  layer->m_Weight = std::make_shared<ScopedTensorHandle>(weights);
2512 
2513  if (descriptor.m_BiasEnabled)
2514  {
2515  layer->m_Bias = std::make_shared<ScopedTensorHandle>(biases.value());
2516  }
2517 
2518  return layer;
2519 }

◆ AddTransposeLayer()

IConnectableLayer * AddTransposeLayer ( const TransposeDescriptor transposeDescriptor,
const char *  name = nullptr 
)

Definition at line 2521 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2523 {
2524  return m_Graph->AddLayer<TransposeLayer>(transposeDescriptor, name);
2525 }

◆ AddUnidirectionalSequenceLstmLayer()

IConnectableLayer * AddUnidirectionalSequenceLstmLayer ( const UnidirectionalSequenceLstmDescriptor descriptor,
const LstmInputParams params,
const char *  name = nullptr 
)

Definition at line 2726 of file Network.cpp.

References UnidirectionalSequenceLstmLayer::m_BasicParameters, LstmInputParams::m_CellBias, LstmInputParams::m_CellLayerNormWeights, LstmInputParams::m_CellToForgetWeights, LstmInputParams::m_CellToInputWeights, LstmInputParams::m_CellToOutputWeights, LstmInputParams::m_ForgetGateBias, LstmInputParams::m_ForgetLayerNormWeights, LstmInputParams::m_InputGateBias, LstmInputParams::m_InputLayerNormWeights, LstmInputParams::m_InputToCellWeights, LstmInputParams::m_InputToForgetWeights, LstmBasicParameters::m_InputToForgetWeights, LstmInputParams::m_InputToInputWeights, LstmInputParams::m_InputToOutputWeights, LstmInputParams::m_OutputGateBias, LstmInputParams::m_OutputLayerNormWeights, LstmInputParams::m_ProjectionBias, LstmInputParams::m_ProjectionWeights, LstmInputParams::m_RecurrentToCellWeights, LstmInputParams::m_RecurrentToForgetWeights, LstmInputParams::m_RecurrentToInputWeights, and LstmInputParams::m_RecurrentToOutputWeights.

Referenced by NetworkImpl::GetGraph().

2730 {
2731  const auto layer = m_Graph->AddLayer<UnidirectionalSequenceLstmLayer>(descriptor, name);
2732 
2733  //Lstm Basic Parameters
2734  layer->m_BasicParameters.m_InputToForgetWeights =
2735  std::make_shared<ScopedTensorHandle>(*(params.m_InputToForgetWeights));
2736  layer->m_BasicParameters.m_InputToCellWeights =
2737  std::make_shared<ScopedTensorHandle>(*(params.m_InputToCellWeights));
2738  layer->m_BasicParameters.m_InputToOutputWeights =
2739  std::make_shared<ScopedTensorHandle>(*(params.m_InputToOutputWeights));
2740  layer->m_BasicParameters.m_RecurrentToForgetWeights =
2741  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToForgetWeights));
2742  layer->m_BasicParameters.m_RecurrentToCellWeights =
2743  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToCellWeights));
2744  layer->m_BasicParameters.m_RecurrentToOutputWeights =
2745  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToOutputWeights));
2746  layer->m_BasicParameters.m_ForgetGateBias =
2747  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetGateBias));
2748  layer->m_BasicParameters.m_CellBias =
2749  std::make_shared<ScopedTensorHandle>(*(params.m_CellBias));
2750  layer->m_BasicParameters.m_OutputGateBias =
2751  std::make_shared<ScopedTensorHandle>(*(params.m_OutputGateBias));
2752 
2753  //Lstm Cifg parameters
2754  if(!descriptor.m_CifgEnabled)
2755  {
2756  if(params.m_InputToInputWeights == nullptr)
2757  {
2758  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Input To Input Weights cannot be NULL "
2759  "when CIFG is disabled.");
2760  }
2761  if(params.m_RecurrentToInputWeights == nullptr)
2762  {
2763  throw InvalidArgumentException(
2764  "AddUnidirectionalSequenceLstmLayer: Recurrent To Input Weights cannot be NULL "
2765  "when CIFG is disabled.");
2766  }
2767  if(params.m_InputGateBias == nullptr)
2768  {
2769  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Input Gate Bias cannot be NULL "
2770  "when CIFG is disabled.");
2771  }
2772  layer->m_CifgParameters.m_InputToInputWeights =
2773  std::make_shared<ScopedTensorHandle>(*(params.m_InputToInputWeights));
2774  layer->m_CifgParameters.m_RecurrentToInputWeights =
2775  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToInputWeights));
2776  layer->m_CifgParameters.m_InputGateBias =
2777  std::make_shared<ScopedTensorHandle>(*(params.m_InputGateBias));
2778  }
2779 
2780  //Lstm projection parameters
2781  if(descriptor.m_ProjectionEnabled)
2782  {
2783  if(params.m_ProjectionWeights == nullptr)
2784  {
2785  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Projection Weights cannot be NULL "
2786  "when projection is enabled.");
2787  }
2788  layer->m_ProjectionParameters.m_ProjectionWeights =
2789  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionWeights));
2790  if(params.m_ProjectionBias != nullptr)
2791  {
2792  layer->m_ProjectionParameters.m_ProjectionBias =
2793  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionBias));
2794  }
2795  }
2796 
2797  //Lstm Peephole params
2798  if(descriptor.m_PeepholeEnabled)
2799  {
2800  if(!descriptor.m_CifgEnabled)
2801  {
2802  if(params.m_CellToInputWeights == nullptr)
2803  {
2804  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Cell To Input Weights "
2805  "cannot be NULL when Peephole is enabled and CIFG disabled.");
2806  }
2807 
2808  layer->m_PeepholeParameters.m_CellToInputWeights =
2809  std::make_shared<ScopedTensorHandle>(*(params.m_CellToInputWeights));
2810  }
2811 
2812  if(params.m_CellToForgetWeights == nullptr)
2813  {
2814  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Cell To Forget Weights cannot be NULL "
2815  "when Peephole is enabled.");
2816  }
2817  if(params.m_CellToOutputWeights == nullptr)
2818  {
2819  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Cell To Output Weights cannot be NULL "
2820  "when Peephole is enabled.");
2821  }
2822 
2823  layer->m_PeepholeParameters.m_CellToForgetWeights =
2824  std::make_shared<ScopedTensorHandle>(*(params.m_CellToForgetWeights));
2825  layer->m_PeepholeParameters.m_CellToOutputWeights =
2826  std::make_shared<ScopedTensorHandle>(*(params.m_CellToOutputWeights));
2827  }
2828 
2829  //Lstm Layer Normalization params
2830  if(descriptor.m_LayerNormEnabled)
2831  {
2832  if(!descriptor.m_CifgEnabled)
2833  {
2834  if(params.m_InputLayerNormWeights == nullptr)
2835  {
2836  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Input layer normalization weights "
2837  "cannot be NULL when layer normalization is enabled and CIFG disabled.");
2838  }
2839  layer->m_LayerNormParameters.m_InputLayerNormWeights =
2840  std::make_shared<ScopedTensorHandle>(*(params.m_InputLayerNormWeights));
2841  }
2842 
2843  if(params.m_ForgetLayerNormWeights == nullptr)
2844  {
2845  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Forget layer normalization weights "
2846  "cannot be NULL when layer normalization is enabled.");
2847  }
2848  if(params.m_CellLayerNormWeights == nullptr)
2849  {
2850  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Cell layer normalization weights "
2851  "cannot be NULL when layer normalization is enabled.");
2852  }
2853  if(params.m_OutputLayerNormWeights == nullptr)
2854  {
2855  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Output layer normalization weights "
2856  "cannot be NULL when layer normalization is enabled.");
2857  }
2858  layer->m_LayerNormParameters.m_ForgetLayerNormWeights =
2859  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetLayerNormWeights));
2860  layer->m_LayerNormParameters.m_CellLayerNormWeights =
2861  std::make_shared<ScopedTensorHandle>(*(params.m_CellLayerNormWeights));
2862  layer->m_LayerNormParameters.m_OutputLayerNormWeights =
2863  std::make_shared<ScopedTensorHandle>(*(params.m_OutputLayerNormWeights));
2864  }
2865  return layer;
2866 }

◆ ExecuteStrategy()

ARMNN_NO_DEPRECATE_WARN_END void ExecuteStrategy ( IStrategy strategy) const

Definition at line 2911 of file Network.cpp.

References NetworkImpl::GetGraph().

Referenced by NetworkImpl::GetGraph().

2912 {
2913  for (auto layer : GetGraph())
2914  {
2915  layer->ExecuteStrategy(strategy);
2916  };
2917 }
const Graph & GetGraph() const
Definition: Network.hpp:37

◆ GetGraph()

const Graph& GetGraph ( ) const
inline

Definition at line 37 of file Network.hpp.

References NetworkImpl::Accept(), NetworkImpl::AddActivationLayer(), NetworkImpl::AddAdditionLayer(), NetworkImpl::AddArgMinMaxLayer(), NetworkImpl::AddBatchNormalizationLayer(), NetworkImpl::AddBatchToSpaceNdLayer(), NetworkImpl::AddCastLayer(), NetworkImpl::AddChannelShuffleLayer(), NetworkImpl::AddComparisonLayer(), NetworkImpl::AddConcatLayer(), NetworkImpl::AddConstantLayer(), NetworkImpl::AddConvertFp16ToFp32Layer(), NetworkImpl::AddConvertFp32ToFp16Layer(), NetworkImpl::AddConvolution2dLayer(), NetworkImpl::AddConvolution3dLayer(), NetworkImpl::AddDepthToSpaceLayer(), NetworkImpl::AddDepthwiseConvolution2dLayer(), NetworkImpl::AddDequantizeLayer(), NetworkImpl::AddDetectionPostProcessLayer(), NetworkImpl::AddDivisionLayer(), NetworkImpl::AddElementwiseUnaryLayer(), NetworkImpl::AddFillLayer(), NetworkImpl::AddFloorLayer(), NetworkImpl::AddFullyConnectedLayer(), NetworkImpl::AddGatherLayer(), NetworkImpl::AddGatherNdLayer(), NetworkImpl::AddInputLayer(), NetworkImpl::AddInstanceNormalizationLayer(), NetworkImpl::AddL2NormalizationLayer(), NetworkImpl::AddLogicalBinaryLayer(), NetworkImpl::AddLogSoftmaxLayer(), NetworkImpl::AddLstmLayer(), NetworkImpl::AddMaximumLayer(), NetworkImpl::AddMeanLayer(), NetworkImpl::AddMergeLayer(), NetworkImpl::AddMinimumLayer(), NetworkImpl::AddMultiplicationLayer(), NetworkImpl::AddNormalizationLayer(), NetworkImpl::AddOutputLayer(), NetworkImpl::AddPadLayer(), NetworkImpl::AddPermuteLayer(), NetworkImpl::AddPooling2dLayer(), NetworkImpl::AddPooling3dLayer(), NetworkImpl::AddPrecompiledLayer(), NetworkImpl::AddPreluLayer(), NetworkImpl::AddQLstmLayer(), NetworkImpl::AddQuantizedLstmLayer(), NetworkImpl::AddQuantizeLayer(), NetworkImpl::AddRankLayer(), NetworkImpl::AddReduceLayer(), NetworkImpl::AddReshapeLayer(), NetworkImpl::AddResizeLayer(), NetworkImpl::AddShapeLayer(), NetworkImpl::AddSliceLayer(), NetworkImpl::AddSoftmaxLayer(), NetworkImpl::AddSpaceToBatchNdLayer(), NetworkImpl::AddSpaceToDepthLayer(), NetworkImpl::AddSplitterLayer(), NetworkImpl::AddStackLayer(), NetworkImpl::AddStandInLayer(), NetworkImpl::AddStridedSliceLayer(), NetworkImpl::AddSubtractionLayer(), NetworkImpl::AddSwitchLayer(), NetworkImpl::AddTransposeConvolution2dLayer(), NetworkImpl::AddTransposeLayer(), NetworkImpl::AddUnidirectionalSequenceLstmLayer(), ARMNN_DEPRECATED_MSG, armnn::ARMNN_DEPRECATED_MSG_REMOVAL_DATE(), ARMNN_NO_DEPRECATE_WARN_BEGIN, ARMNN_NO_DEPRECATE_WARN_END, NetworkImpl::ExecuteStrategy(), and NetworkImpl::PrintGraph().

Referenced by NetworkImpl::Accept(), NetworkImpl::ExecuteStrategy(), and TEST_SUITE().

38  { return *m_Graph; }

◆ PrintGraph()

Status PrintGraph ( )

Definition at line 1897 of file Network.cpp.

References armnn::Success.

Referenced by NetworkImpl::GetGraph(), and TEST_SUITE().

1898 {
1899  m_Graph->Print();
1900  return Status::Success;
1901 }

The documentation for this class was generated from the following files: