ArmNN
 21.08
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)
 
IConnectableLayerAddAbsLayer (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)
 
IConnectableLayerAddComparisonLayer (const ComparisonDescriptor &comparisonDescriptor, const char *name=nullptr)
 
IConnectableLayerAddConcatLayer (const ConcatDescriptor &concatDescriptor, 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)
 
IConnectableLayerAddConstantLayer (const ConstTensor &input, const char *name=nullptr)
 
IConnectableLayerAddDepthToSpaceLayer (const DepthToSpaceDescriptor &depthToSpaceDescriptor, const char *name=nullptr)
 
IConnectableLayerAddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
 
IConnectableLayerAddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const char *name=nullptr)
 
IConnectableLayerAddDepthwiseConvolution2dLayer (const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const 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)
 
IConnectableLayerAddEqualLayer (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)
 
IConnectableLayerAddFullyConnectedLayer (const FullyConnectedDescriptor &fullyConnectedDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
 
IConnectableLayerAddGatherLayer (const char *name=nullptr)
 
IConnectableLayerAddGatherLayer (const GatherDescriptor &gatherDescriptor, const char *name=nullptr)
 
IConnectableLayerAddGreaterLayer (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)
 
IConnectableLayerAddMergerLayer (const MergerDescriptor &mergerDescriptor, 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)
 
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)
 
IConnectableLayerAddResizeBilinearLayer (const ResizeBilinearDescriptor &resizeDesc, const char *name=nullptr)
 
IConnectableLayerAddResizeLayer (const ResizeDescriptor &resizeDescriptor, const char *name=nullptr)
 
IConnectableLayerAddReshapeLayer (const ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr)
 
IConnectableLayerAddRsqrtLayer (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)
 
void Accept (ILayerVisitor &visitor) const
 
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 1790 of file Network.cpp.

1791 : m_NetworkOptions(networkOptions),
1792  m_Graph(std::make_unique<Graph>(GetShapeInferenceMethod()))
1793 {}

◆ ~NetworkImpl()

Definition at line 1795 of file Network.cpp.

1796 {
1797 }

Member Function Documentation

◆ Accept()

void Accept ( ILayerVisitor visitor) const

Definition at line 2824 of file Network.cpp.

References NetworkImpl::GetGraph().

Referenced by NetworkImpl::GetGraph().

2825 {
2826  for (auto layer : GetGraph())
2827  {
2828  layer->Accept(visitor);
2829  };
2830 }
const Graph & GetGraph() const
Definition: Network.hpp:37

◆ AddAbsLayer()

IConnectableLayer * AddAbsLayer ( const char *  name = nullptr)

Definition at line 2114 of file Network.cpp.

References armnn::Abs, and NetworkImpl::AddElementwiseUnaryLayer().

Referenced by NetworkImpl::GetGraph().

2115 {
2116  return AddElementwiseUnaryLayer(ElementwiseUnaryDescriptor(UnaryOperation::Abs), name);
2117 }
IConnectableLayer * AddElementwiseUnaryLayer(const ElementwiseUnaryDescriptor &elementwiseUnaryDescriptor, const char *name=nullptr)
Definition: Network.cpp:1827

◆ AddActivationLayer()

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

Definition at line 2062 of file Network.cpp.

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

2064 {
2065  return m_Graph->AddLayer<ActivationLayer>(activationDescriptor, name);
2066 }

◆ AddAdditionLayer()

IConnectableLayer * AddAdditionLayer ( const char *  name = nullptr)

Definition at line 2119 of file Network.cpp.

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

2120 {
2121  return m_Graph->AddLayer<AdditionLayer>(name);
2122 }

◆ AddArgMinMaxLayer()

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

Definition at line 2068 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2070 {
2071  return m_Graph->AddLayer<ArgMinMaxLayer>(argMinMaxDescriptor, name);
2072 }

◆ 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 2134 of file Network.cpp.

References BatchNormalizationLayer::m_Mean.

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

2140 {
2141  const auto layer = m_Graph->AddLayer<BatchNormalizationLayer>(desc, name);
2142 
2143  layer->m_Mean = std::make_shared<ScopedTensorHandle>(mean);
2144  layer->m_Variance = std::make_shared<ScopedTensorHandle>(variance);
2145  layer->m_Beta = std::make_shared<ScopedTensorHandle>(beta);
2146  layer->m_Gamma = std::make_shared<ScopedTensorHandle>(gamma);
2147 
2148  return layer;
2149 }

◆ AddBatchToSpaceNdLayer()

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

Definition at line 1810 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1812 {
1813  return m_Graph->AddLayer<BatchToSpaceNdLayer>(batchToSpaceNdDescriptor, name);
1814 }

◆ AddCastLayer()

IConnectableLayer * AddCastLayer ( const char *  name = nullptr)

Definition at line 1816 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1817 {
1818  return m_Graph->AddLayer<CastLayer>(name);
1819 }

◆ AddComparisonLayer()

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

Definition at line 1821 of file Network.cpp.

Referenced by NetworkImpl::AddEqualLayer(), NetworkImpl::AddGreaterLayer(), and NetworkImpl::GetGraph().

1823 {
1824  return m_Graph->AddLayer<ComparisonLayer>(comparisonDescriptor, name);
1825 }

◆ AddConcatLayer()

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

Definition at line 1930 of file Network.cpp.

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

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

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

◆ AddConstantLayer()

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

Definition at line 2204 of file Network.cpp.

References ConstantLayer::m_LayerOutput.

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

2205 {
2206  auto layer = m_Graph->AddLayer<ConstantLayer>(name);
2207 
2208  layer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(input);
2209 
2210  return layer;
2211 }

◆ AddConvolution2dLayer() [1/3]

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

Definition at line 1958 of file Network.cpp.

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

1962 {
1963  return AddConvolution2dLayerImpl(convolution2dDescriptor, weights, biases, name);
1964 }

◆ AddConvolution2dLayer() [2/3]

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

Definition at line 1966 of file Network.cpp.

1969 {
1970  Optional<ConstTensor> biases;
1971  return AddConvolution2dLayerImpl(convolution2dDescriptor, weights, biases, name);
1972 }

◆ AddConvolution2dLayer() [3/3]

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

Definition at line 1974 of file Network.cpp.

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

1978 {
1979  Optional<ConstTensor> optionalBiases(biases);
1980  return AddConvolution2dLayerImpl(convolution2dDescriptor, weights, optionalBiases, name);
1981 }

◆ AddDepthToSpaceLayer()

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

Definition at line 2006 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2008 {
2009  return m_Graph->AddLayer<DepthToSpaceLayer>(depthToSpaceDescriptor, name);
2010 }

◆ AddDepthwiseConvolution2dLayer() [1/3]

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

Definition at line 2012 of file Network.cpp.

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

2017 {
2018  return AddDepthwiseConvolution2dLayerImpl(convolution2dDescriptor, weights, biases, name);
2019 }

◆ AddDepthwiseConvolution2dLayer() [2/3]

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

Definition at line 2021 of file Network.cpp.

2025 {
2026  Optional<ConstTensor> biases;
2027  return AddDepthwiseConvolution2dLayerImpl(convolution2dDescriptor, weights, biases, name);
2028 }

◆ AddDepthwiseConvolution2dLayer() [3/3]

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

Definition at line 2030 of file Network.cpp.

2035 {
2036  Optional<ConstTensor> optionalBiases(biases);
2037  return AddDepthwiseConvolution2dLayerImpl(convolution2dDescriptor, weights, optionalBiases, name);
2038 }

◆ AddDequantizeLayer()

IConnectableLayer * AddDequantizeLayer ( const char *  name = nullptr)

Definition at line 2402 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2403 {
2404  return m_Graph->AddLayer<DequantizeLayer>(name);
2405 }

◆ AddDetectionPostProcessLayer()

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

Definition at line 2040 of file Network.cpp.

References DetectionPostProcessLayer::m_Anchors.

Referenced by NetworkImpl::GetGraph().

2042 {
2043  const auto layer = m_Graph->AddLayer<DetectionPostProcessLayer>(descriptor, name);
2044 
2045  layer->m_Anchors = std::make_shared<ScopedTensorHandle>(anchors);
2046 
2047  return layer;
2048 }

◆ AddDivisionLayer()

IConnectableLayer * AddDivisionLayer ( const char *  name = nullptr)

Definition at line 2377 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2378 {
2379  return m_Graph->AddLayer<DivisionLayer>(name);
2380 }

◆ AddElementwiseUnaryLayer()

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

Definition at line 1827 of file Network.cpp.

Referenced by NetworkImpl::AddAbsLayer(), NetworkImpl::AddRsqrtLayer(), and NetworkImpl::GetGraph().

1829 {
1830  return m_Graph->AddLayer<ElementwiseUnaryLayer>(elementwiseUnaryDescriptor, name);
1831 }

◆ AddEqualLayer()

IConnectableLayer * AddEqualLayer ( const char *  name = nullptr)

Definition at line 2418 of file Network.cpp.

References NetworkImpl::AddComparisonLayer(), and armnn::Equal.

Referenced by NetworkImpl::GetGraph().

2419 {
2420  return AddComparisonLayer(ComparisonDescriptor(ComparisonOperation::Equal), name);
2421 }
IConnectableLayer * AddComparisonLayer(const ComparisonDescriptor &comparisonDescriptor, const char *name=nullptr)
Definition: Network.cpp:1821

◆ AddFillLayer()

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

Definition at line 1833 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1835 {
1836  return m_Graph->AddLayer<FillLayer>(fillDescriptor, name);
1837 }

◆ AddFloorLayer()

IConnectableLayer * AddFloorLayer ( const char *  name = nullptr)

Definition at line 2231 of file Network.cpp.

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

2232 {
2233  return m_Graph->AddLayer<FloorLayer>(name);
2234 }

◆ AddFullyConnectedLayer() [1/3]

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

Definition at line 1839 of file Network.cpp.

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

1841 {
1842  return m_Graph->AddLayer<FullyConnectedLayer>(fullyConnectedDescriptor, name);
1843 }

◆ AddFullyConnectedLayer() [2/3]

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

Definition at line 1845 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().

1849 {
1850  ConstantLayer* weightsLayer = nullptr;
1851  ConstantLayer* biasLayer = nullptr;
1852  unsigned int numInputs = fullyConnectedDescriptor.GetNumInputs();
1853 
1854  // Add a constant layer for weights
1855  if (weights.has_value())
1856  {
1857  weightsLayer = m_Graph->AddLayer<ConstantLayer>("Weights");
1858  weightsLayer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(weights.value());
1859 
1860  TensorInfo weightsInfo = weightsLayer->m_LayerOutput->GetTensorInfo();
1861  weightsInfo.SetConstant();
1862 
1863  weightsLayer->GetOutputSlot(0).SetTensorInfo(weightsInfo);
1864  }
1865  else if (fullyConnectedDescriptor.m_ConstantWeights)
1866  {
1867  throw InvalidArgumentException("AddFullyConnectedLayer: Constant weights tensor is empty.");
1868  }
1869 
1870  // Add a constant layer for biases
1871  if (biases.has_value() && fullyConnectedDescriptor.m_BiasEnabled)
1872  {
1873  biasLayer = m_Graph->AddLayer<ConstantLayer>("Biases");
1874  biasLayer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(biases.value());
1875 
1876  TensorInfo biasInfo = biasLayer->m_LayerOutput->GetTensorInfo();
1877  biasInfo.SetConstant();
1878 
1879  biasLayer->GetOutputSlot(0).SetTensorInfo(biasInfo);
1880  }
1881 
1882  if (numInputs < 2)
1883  {
1884  throw InvalidArgumentException("AddFullyConnectedLayer: Requires at least 2 input tensors: Input, Weights");
1885  }
1886 
1887  auto layer = m_Graph->AddLayer<FullyConnectedLayer>(fullyConnectedDescriptor, name);
1888 
1889  if (weightsLayer)
1890  {
1891  // Connect weights layer
1892  weightsLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(1));
1893  }
1894 
1895  if ( fullyConnectedDescriptor.m_BiasEnabled && numInputs == 3 )
1896  {
1897  if (biasLayer)
1898  {
1899  // Connect bias layer
1900  biasLayer->GetOutputSlot(0).Connect(layer->GetInputSlot(2));
1901  }
1902  }
1903  else if ( !fullyConnectedDescriptor.m_BiasEnabled && numInputs == 2 )
1904  {
1905  // Bias is disabled
1906  layer->m_Bias = nullptr;
1907  }
1908  else
1909  {
1910  throw InvalidArgumentException(fmt::format(
1911  "AddFullyConnectedLayer: Value mismatch. When bias is enabled in the "
1912  "descriptor the number of inputs is expected to be 3 otherwise 2. "
1913  "BiasEnabled={}, numInputs={}",
1914  fullyConnectedDescriptor.m_BiasEnabled,
1915  numInputs));
1916  }
1917 
1918  return layer;
1919 }

◆ AddFullyConnectedLayer() [3/3]

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

Definition at line 1921 of file Network.cpp.

References NetworkImpl::AddFullyConnectedLayer().

1925 {
1926  Optional<ConstTensor> optionalWeights(weights);
1927  return AddFullyConnectedLayer(fullyConnectedDescriptor, optionalWeights, biases, name);
1928 }
IConnectableLayer * AddFullyConnectedLayer(const FullyConnectedDescriptor &fullyConnectedDescriptor, const char *name=nullptr)
Definition: Network.cpp:1839

◆ AddGatherLayer() [1/2]

IConnectableLayer * AddGatherLayer ( const char *  name = nullptr)

Definition at line 2428 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2429 {
2430  GatherDescriptor gatherDescriptor{};
2431  return AddGatherLayer(gatherDescriptor, name);
2432 }
IConnectableLayer * AddGatherLayer(const char *name=nullptr)
Definition: Network.cpp:2428

◆ AddGatherLayer() [2/2]

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

Definition at line 2434 of file Network.cpp.

2436 {
2437  return m_Graph->AddLayer<GatherLayer>(gatherDescriptor, name);
2438 }

◆ AddGreaterLayer()

IConnectableLayer * AddGreaterLayer ( const char *  name = nullptr)

Definition at line 2413 of file Network.cpp.

References NetworkImpl::AddComparisonLayer(), and armnn::Greater.

Referenced by NetworkImpl::GetGraph().

2414 {
2415  return AddComparisonLayer(ComparisonDescriptor(ComparisonOperation::Greater), name);
2416 }
IConnectableLayer * AddComparisonLayer(const ComparisonDescriptor &comparisonDescriptor, const char *name=nullptr)
Definition: Network.cpp:1821

◆ AddInputLayer()

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

Definition at line 1805 of file Network.cpp.

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

1806 {
1807  return m_Graph->AddLayer<InputLayer>(id, name);
1808 }

◆ AddInstanceNormalizationLayer()

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

Definition at line 2186 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2188 {
2189  return m_Graph->AddLayer<InstanceNormalizationLayer>(desc, name);
2190 }

◆ AddL2NormalizationLayer()

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

Definition at line 2192 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2194 {
2195  return m_Graph->AddLayer<L2NormalizationLayer>(desc, name);
2196 }

◆ AddLogicalBinaryLayer()

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

Definition at line 2676 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2678 {
2679  return m_Graph->AddLayer<LogicalBinaryLayer>(logicalBinaryDescriptor, name);
2680 }

◆ AddLogSoftmaxLayer()

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

Definition at line 2198 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2200 {
2201  return m_Graph->AddLayer<LogSoftmaxLayer>(desc, name);
2202 }

◆ AddLstmLayer()

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

Definition at line 2236 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().

2239 {
2240  const auto layer = m_Graph->AddLayer<LstmLayer>(descriptor, name);
2241 
2242  //Lstm Basic Parameters
2243  layer->m_BasicParameters.m_InputToForgetWeights =
2244  std::make_shared<ScopedTensorHandle>(*(params.m_InputToForgetWeights));
2245  layer->m_BasicParameters.m_InputToCellWeights =
2246  std::make_shared<ScopedTensorHandle>(*(params.m_InputToCellWeights));
2247  layer->m_BasicParameters.m_InputToOutputWeights =
2248  std::make_shared<ScopedTensorHandle>(*(params.m_InputToOutputWeights));
2249  layer->m_BasicParameters.m_RecurrentToForgetWeights =
2250  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToForgetWeights));
2251  layer->m_BasicParameters.m_RecurrentToCellWeights =
2252  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToCellWeights));
2253  layer->m_BasicParameters.m_RecurrentToOutputWeights =
2254  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToOutputWeights));
2255  layer->m_BasicParameters.m_ForgetGateBias =
2256  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetGateBias));
2257  layer->m_BasicParameters.m_CellBias =
2258  std::make_shared<ScopedTensorHandle>(*(params.m_CellBias));
2259  layer->m_BasicParameters.m_OutputGateBias =
2260  std::make_shared<ScopedTensorHandle>(*(params.m_OutputGateBias));
2261 
2262  //Lstm Cifg parameters
2263  if(!descriptor.m_CifgEnabled)
2264  {
2265  if(params.m_InputToInputWeights == nullptr)
2266  {
2267  throw InvalidArgumentException("AddLstmLayer: Input To Input Weights cannot be NULL "
2268  "when CIFG is disabled.");
2269  }
2270  if(params.m_RecurrentToInputWeights == nullptr)
2271  {
2272  throw InvalidArgumentException(
2273  "AddLstmLayer: Recurrent To Input Weights cannot be NULL "
2274  "when CIFG is disabled.");
2275  }
2276  if(params.m_InputGateBias == nullptr)
2277  {
2278  throw InvalidArgumentException("AddLstmLayer: Input Gate Bias cannot be NULL "
2279  "when CIFG is disabled.");
2280  }
2281  layer->m_CifgParameters.m_InputToInputWeights =
2282  std::make_shared<ScopedTensorHandle>(*(params.m_InputToInputWeights));
2283  layer->m_CifgParameters.m_RecurrentToInputWeights =
2284  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToInputWeights));
2285  layer->m_CifgParameters.m_InputGateBias =
2286  std::make_shared<ScopedTensorHandle>(*(params.m_InputGateBias));
2287  }
2288 
2289  //Lstm projection parameters
2290  if(descriptor.m_ProjectionEnabled)
2291  {
2292  if(params.m_ProjectionWeights == nullptr)
2293  {
2294  throw InvalidArgumentException("AddLstmLayer: Projection Weights cannot be NULL "
2295  "when projection is enabled.");
2296  }
2297  layer->m_ProjectionParameters.m_ProjectionWeights =
2298  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionWeights));
2299  if(params.m_ProjectionBias != nullptr)
2300  {
2301  layer->m_ProjectionParameters.m_ProjectionBias =
2302  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionBias));
2303  }
2304  }
2305 
2306  //Lstm Peephole params
2307  if(descriptor.m_PeepholeEnabled)
2308  {
2309  if(!descriptor.m_CifgEnabled)
2310  {
2311  if(params.m_CellToInputWeights == nullptr)
2312  {
2313  throw InvalidArgumentException("AddLstmLayer: Cell To Input Weights cannot be NULL "
2314  "when Peephole is enabled and CIFG disabled.");
2315  }
2316 
2317  layer->m_PeepholeParameters.m_CellToInputWeights =
2318  std::make_shared<ScopedTensorHandle>(*(params.m_CellToInputWeights));
2319  }
2320 
2321  if(params.m_CellToForgetWeights == nullptr)
2322  {
2323  throw InvalidArgumentException("AddLstmLayer: Cell To Forget Weights cannot be NULL "
2324  "when Peephole is enabled.");
2325  }
2326  if(params.m_CellToOutputWeights == nullptr)
2327  {
2328  throw InvalidArgumentException("AddLstmLayer: Cell To Output Weights cannot be NULL "
2329  "when Peephole is enabled.");
2330  }
2331 
2332  layer->m_PeepholeParameters.m_CellToForgetWeights =
2333  std::make_shared<ScopedTensorHandle>(*(params.m_CellToForgetWeights));
2334  layer->m_PeepholeParameters.m_CellToOutputWeights =
2335  std::make_shared<ScopedTensorHandle>(*(params.m_CellToOutputWeights));
2336  }
2337 
2338  //Lstm Layer Normalization params
2339  if(descriptor.m_LayerNormEnabled)
2340  {
2341  if(!descriptor.m_CifgEnabled)
2342  {
2343  if(params.m_InputLayerNormWeights == nullptr)
2344  {
2345  throw InvalidArgumentException("AddLstmLayer: Input layer normalization weights cannot be NULL "
2346  "when layer normalization is enabled and CIFG disabled.");
2347  }
2348  layer->m_LayerNormParameters.m_InputLayerNormWeights =
2349  std::make_shared<ScopedTensorHandle>(*(params.m_InputLayerNormWeights));
2350  }
2351 
2352  if(params.m_ForgetLayerNormWeights == nullptr)
2353  {
2354  throw InvalidArgumentException("AddLstmLayer: Forget layer normalization weights cannot be NULL "
2355  "when layer normalization is enabled.");
2356  }
2357  if(params.m_CellLayerNormWeights == nullptr)
2358  {
2359  throw InvalidArgumentException("AddLstmLayer: Cell layer normalization weights cannot be NULL "
2360  "when layer normalization is enabled.");
2361  }
2362  if(params.m_OutputLayerNormWeights == nullptr)
2363  {
2364  throw InvalidArgumentException("AddLstmLayer: Output layer normalization weights cannot be NULL "
2365  "when layer normalization is enabled.");
2366  }
2367  layer->m_LayerNormParameters.m_ForgetLayerNormWeights =
2368  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetLayerNormWeights));
2369  layer->m_LayerNormParameters.m_CellLayerNormWeights =
2370  std::make_shared<ScopedTensorHandle>(*(params.m_CellLayerNormWeights));
2371  layer->m_LayerNormParameters.m_OutputLayerNormWeights =
2372  std::make_shared<ScopedTensorHandle>(*(params.m_OutputLayerNormWeights));
2373  }
2374  return layer;
2375 }

◆ AddMaximumLayer()

IConnectableLayer * AddMaximumLayer ( const char *  name = nullptr)

Definition at line 2098 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2099 {
2100  return m_Graph->AddLayer<MaximumLayer>(name);
2101 }

◆ AddMeanLayer()

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

Definition at line 2387 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2388 {
2389  return m_Graph->AddLayer<MeanLayer>(meanDescriptor,name);
2390 }

◆ AddMergeLayer()

IConnectableLayer * AddMergeLayer ( const char *  name = nullptr)

Definition at line 2440 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2441 {
2442  return m_Graph->AddLayer<MergeLayer>(name);
2443 }

◆ AddMergerLayer()

IConnectableLayer * AddMergerLayer ( const MergerDescriptor mergerDescriptor,
const char *  name = nullptr 
)

Definition at line 2108 of file Network.cpp.

References NetworkImpl::AddConcatLayer().

Referenced by NetworkImpl::GetGraph().

2110 {
2111  return AddConcatLayer(mergerDescriptor, name);
2112 }
IConnectableLayer * AddConcatLayer(const ConcatDescriptor &concatDescriptor, const char *name=nullptr)
Definition: Network.cpp:1930

◆ AddMinimumLayer()

IConnectableLayer * AddMinimumLayer ( const char *  name = nullptr)

Definition at line 2103 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2104 {
2105  return m_Graph->AddLayer<MinimumLayer>(name);
2106 }

◆ AddMultiplicationLayer()

IConnectableLayer * AddMultiplicationLayer ( const char *  name = nullptr)

Definition at line 2124 of file Network.cpp.

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

2125 {
2126  return m_Graph->AddLayer<MultiplicationLayer>(name);
2127 }

◆ AddNormalizationLayer()

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

Definition at line 2074 of file Network.cpp.

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

2077 {
2078  return m_Graph->AddLayer<NormalizationLayer>(normalizationDescriptor, name);
2079 }

◆ AddOutputLayer()

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

Definition at line 2129 of file Network.cpp.

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

2130 {
2131  return m_Graph->AddLayer<OutputLayer>(id, name);
2132 }

◆ AddPadLayer()

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

Definition at line 2392 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2393 {
2394  return m_Graph->AddLayer<PadLayer>(padDescriptor,name);
2395 }

◆ AddPermuteLayer()

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

Definition at line 2050 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2052 {
2053  return m_Graph->AddLayer<PermuteLayer>(permuteDescriptor, name);
2054 }

◆ AddPooling2dLayer()

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

Definition at line 2056 of file Network.cpp.

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

2058 {
2059  return m_Graph->AddLayer<Pooling2dLayer>(pooling2dDescriptor, name);
2060 }

◆ AddPreluLayer()

IConnectableLayer * AddPreluLayer ( const char *  name = nullptr)

Definition at line 2450 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2451 {
2452  return m_Graph->AddLayer<PreluLayer>(name);
2453 }

◆ AddQLstmLayer()

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

Definition at line 2534 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().

2537 {
2538  const auto layer = m_Graph->AddLayer<QLstmLayer>(descriptor, name);
2539 
2540  // QLstm Basic Parameters
2541  layer->m_BasicParameters.m_InputToForgetWeights =
2542  std::make_shared<ScopedTensorHandle>(*(params.m_InputToForgetWeights));
2543  layer->m_BasicParameters.m_InputToCellWeights =
2544  std::make_shared<ScopedTensorHandle>(*(params.m_InputToCellWeights));
2545  layer->m_BasicParameters.m_InputToOutputWeights =
2546  std::make_shared<ScopedTensorHandle>(*(params.m_InputToOutputWeights));
2547  layer->m_BasicParameters.m_RecurrentToForgetWeights =
2548  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToForgetWeights));
2549  layer->m_BasicParameters.m_RecurrentToCellWeights =
2550  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToCellWeights));
2551  layer->m_BasicParameters.m_RecurrentToOutputWeights =
2552  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToOutputWeights));
2553  layer->m_BasicParameters.m_ForgetGateBias =
2554  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetGateBias));
2555  layer->m_BasicParameters.m_CellBias =
2556  std::make_shared<ScopedTensorHandle>(*(params.m_CellBias));
2557  layer->m_BasicParameters.m_OutputGateBias =
2558  std::make_shared<ScopedTensorHandle>(*(params.m_OutputGateBias));
2559 
2560  // QLstm Cifg parameters
2561  if(!descriptor.m_CifgEnabled)
2562  {
2563  if(params.m_InputToInputWeights == nullptr)
2564  {
2565  throw InvalidArgumentException("AddQLstmLayer: Input To Input Weights cannot be NULL");
2566  }
2567 
2568  if(params.m_RecurrentToInputWeights == nullptr)
2569  {
2570  throw InvalidArgumentException(
2571  "AddQLstmLayer: Recurrent To Input Weights cannot be NULL");
2572  }
2573 
2574  if(params.m_InputGateBias == nullptr)
2575  {
2576  throw InvalidArgumentException("AddQLstmLayer: Input Gate Bias cannot be NULL");
2577  }
2578 
2579  layer->m_CifgParameters.m_InputToInputWeights =
2580  std::make_shared<ScopedTensorHandle>(*(params.m_InputToInputWeights));
2581  layer->m_CifgParameters.m_RecurrentToInputWeights =
2582  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToInputWeights));
2583  layer->m_CifgParameters.m_InputGateBias =
2584  std::make_shared<ScopedTensorHandle>(*(params.m_InputGateBias));
2585  }
2586 
2587  // QLstm Projection parameters
2588  if(descriptor.m_ProjectionEnabled)
2589  {
2590  if(params.m_ProjectionWeights == nullptr)
2591  {
2592  throw InvalidArgumentException("AddQLstmLayer: Projection Weights cannot be NULL");
2593  }
2594 
2595  layer->m_ProjectionParameters.m_ProjectionWeights =
2596  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionWeights));
2597 
2598  // Projection bias is optional even if projection is enabled
2599  if(params.m_ProjectionWeights != nullptr)
2600  {
2601  layer->m_ProjectionParameters.m_ProjectionBias =
2602  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionBias));
2603  }
2604 
2605  }
2606 
2607  // QLstm Peephole params
2608  if(descriptor.m_PeepholeEnabled)
2609  {
2610  if(params.m_CellToForgetWeights == nullptr)
2611  {
2612  throw InvalidArgumentException("AddQLstmLayer: Cell To Forget Weights cannot be NULL");
2613  }
2614 
2615  if(params.m_CellToOutputWeights == nullptr)
2616  {
2617  throw InvalidArgumentException("AddQLstmLayer: Cell To Output Weights cannot be NULL");
2618  }
2619 
2620  if(!descriptor.m_CifgEnabled)
2621  {
2622  if(params.m_CellToInputWeights == nullptr)
2623  {
2624  throw InvalidArgumentException("AddQLstmLayer: Cell To Input Weights cannot be NULL");
2625  }
2626 
2627  layer->m_PeepholeParameters.m_CellToInputWeights =
2628  std::make_shared<ScopedTensorHandle>(*(params.m_CellToInputWeights));
2629  }
2630 
2631  layer->m_PeepholeParameters.m_CellToForgetWeights =
2632  std::make_shared<ScopedTensorHandle>(*(params.m_CellToForgetWeights));
2633  layer->m_PeepholeParameters.m_CellToOutputWeights =
2634  std::make_shared<ScopedTensorHandle>(*(params.m_CellToOutputWeights));
2635  }
2636 
2637  // QLstm Layer Normalization params
2638  if(descriptor.m_LayerNormEnabled)
2639  {
2640  if(params.m_ForgetLayerNormWeights == nullptr)
2641  {
2642  throw InvalidArgumentException("AddQLstmLayer: Forget layer normalization weights cannot be NULL");
2643  }
2644 
2645  if(params.m_CellLayerNormWeights == nullptr)
2646  {
2647  throw InvalidArgumentException("AddQLstmLayer: Cell layer normalization weights cannot be NULL");
2648  }
2649 
2650  if(params.m_OutputLayerNormWeights == nullptr)
2651  {
2652  throw InvalidArgumentException("AddQLstmLayer: Output layer normalization weights cannot be NULL");
2653  }
2654 
2655  if(!descriptor.m_CifgEnabled)
2656  {
2657  if(params.m_InputLayerNormWeights == nullptr)
2658  {
2659  throw InvalidArgumentException("AddQLstmLayer: Input layer normalization weights cannot be NULL");
2660  }
2661 
2662  layer->m_LayerNormParameters.m_InputLayerNormWeights =
2663  std::make_shared<ScopedTensorHandle>(*(params.m_InputLayerNormWeights));
2664  }
2665 
2666  layer->m_LayerNormParameters.m_ForgetLayerNormWeights =
2667  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetLayerNormWeights));
2668  layer->m_LayerNormParameters.m_CellLayerNormWeights =
2669  std::make_shared<ScopedTensorHandle>(*(params.m_CellLayerNormWeights));
2670  layer->m_LayerNormParameters.m_OutputLayerNormWeights =
2671  std::make_shared<ScopedTensorHandle>(*(params.m_OutputLayerNormWeights));
2672  }
2673  return layer;
2674 }

◆ AddQuantizedLstmLayer()

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

Definition at line 2496 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().

2498 {
2499  const auto layer = m_Graph->AddLayer<QuantizedLstmLayer>(name);
2500 
2501  // InputToX weights
2502  layer->m_QuantizedLstmParameters.m_InputToInputWeights =
2503  std::make_shared<ScopedTensorHandle>(params.GetInputToInputWeights());
2504  layer->m_QuantizedLstmParameters.m_InputToForgetWeights =
2505  std::make_shared<ScopedTensorHandle>(params.GetInputToForgetWeights());
2506  layer->m_QuantizedLstmParameters.m_InputToCellWeights =
2507  std::make_shared<ScopedTensorHandle>(params.GetInputToCellWeights());
2508  layer->m_QuantizedLstmParameters.m_InputToOutputWeights =
2509  std::make_shared<ScopedTensorHandle>(params.GetInputToOutputWeights());
2510 
2511  // RecurrentToX weights
2512  layer->m_QuantizedLstmParameters.m_RecurrentToInputWeights =
2513  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToInputWeights());
2514  layer->m_QuantizedLstmParameters.m_RecurrentToForgetWeights =
2515  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToForgetWeights());
2516  layer->m_QuantizedLstmParameters.m_RecurrentToCellWeights =
2517  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToCellWeights());
2518  layer->m_QuantizedLstmParameters.m_RecurrentToOutputWeights =
2519  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToOutputWeights());
2520 
2521  // Bias
2522  layer->m_QuantizedLstmParameters.m_InputGateBias =
2523  std::make_shared<ScopedTensorHandle>(params.GetInputGateBias());
2524  layer->m_QuantizedLstmParameters.m_ForgetGateBias =
2525  std::make_shared<ScopedTensorHandle>(params.GetForgetGateBias());
2526  layer->m_QuantizedLstmParameters.m_CellBias =
2527  std::make_shared<ScopedTensorHandle>(params.GetCellBias());
2528  layer->m_QuantizedLstmParameters.m_OutputGateBias =
2529  std::make_shared<ScopedTensorHandle>(params.GetOutputGateBias());
2530 
2531  return layer;
2532 }

◆ AddQuantizeLayer()

IConnectableLayer * AddQuantizeLayer ( const char *  name = nullptr)

Definition at line 2397 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2398 {
2399  return m_Graph->AddLayer<QuantizeLayer>(name);
2400 }

◆ AddRankLayer()

IConnectableLayer * AddRankLayer ( const char *  name = nullptr)

Definition at line 2151 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2152 {
2153  return m_Graph->AddLayer<RankLayer>(name);
2154 }

◆ AddReduceLayer()

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

Definition at line 2156 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2158 {
2159  return m_Graph->AddLayer<ReduceLayer>(reduceDescriptor, name);
2160 }

◆ AddReshapeLayer()

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

Definition at line 2213 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2215 {
2216  return m_Graph->AddLayer<ReshapeLayer>(reshapeDescriptor, name);
2217 }

◆ AddResizeBilinearLayer()

IConnectableLayer * AddResizeBilinearLayer ( const ResizeBilinearDescriptor resizeDesc,
const char *  name = nullptr 
)

Definition at line 2162 of file Network.cpp.

References armnn::Bilinear, ResizeBilinearDescriptor::m_AlignCorners, ResizeDescriptor::m_AlignCorners, ResizeBilinearDescriptor::m_DataLayout, ResizeDescriptor::m_DataLayout, ResizeBilinearDescriptor::m_HalfPixelCenters, ResizeDescriptor::m_HalfPixelCenters, ResizeDescriptor::m_Method, ResizeBilinearDescriptor::m_TargetHeight, ResizeDescriptor::m_TargetHeight, ResizeBilinearDescriptor::m_TargetWidth, and ResizeDescriptor::m_TargetWidth.

Referenced by NetworkImpl::GetGraph().

2164 {
2165  ResizeDescriptor resizeDescriptor;
2166  resizeDescriptor.m_Method = ResizeMethod::Bilinear;
2167  resizeDescriptor.m_DataLayout = descriptor.m_DataLayout;
2168  resizeDescriptor.m_TargetWidth = descriptor.m_TargetWidth;
2169  resizeDescriptor.m_TargetHeight = descriptor.m_TargetHeight;
2170  resizeDescriptor.m_AlignCorners = descriptor.m_AlignCorners;
2171  resizeDescriptor.m_HalfPixelCenters = descriptor.m_HalfPixelCenters;
2172 
2173  return m_Graph->AddLayer<ResizeLayer>(resizeDescriptor, name);
2174 }

◆ AddResizeLayer()

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

Definition at line 2176 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2177 {
2178  return m_Graph->AddLayer<ResizeLayer>(resizeDescriptor, name);
2179 }

◆ AddRsqrtLayer()

IConnectableLayer * AddRsqrtLayer ( const char *  name = nullptr)

Definition at line 2423 of file Network.cpp.

References NetworkImpl::AddElementwiseUnaryLayer(), and armnn::Rsqrt.

Referenced by NetworkImpl::GetGraph().

2424 {
2425  return AddElementwiseUnaryLayer(ElementwiseUnaryDescriptor(UnaryOperation::Rsqrt), name);
2426 }
IConnectableLayer * AddElementwiseUnaryLayer(const ElementwiseUnaryDescriptor &elementwiseUnaryDescriptor, const char *name=nullptr)
Definition: Network.cpp:1827

◆ AddShapeLayer()

IConnectableLayer * AddShapeLayer ( const char *  name = nullptr)

Definition at line 2181 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2182 {
2183  return m_Graph->AddLayer<ShapeLayer>(name);
2184 }

◆ AddSliceLayer()

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

Definition at line 2081 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2082 {
2083  return m_Graph->AddLayer<SliceLayer>(sliceDescriptor, name);
2084 }

◆ AddSoftmaxLayer()

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

Definition at line 2086 of file Network.cpp.

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

2088 {
2089  return m_Graph->AddLayer<SoftmaxLayer>(softmaxDescriptor, name);
2090 }

◆ AddSpaceToBatchNdLayer()

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

Definition at line 2219 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2221 {
2222  return m_Graph->AddLayer<SpaceToBatchNdLayer>(spaceToBatchNdDescriptor, name);
2223 }

◆ AddSpaceToDepthLayer()

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

Definition at line 2225 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2227 {
2228  return m_Graph->AddLayer<SpaceToDepthLayer>(spaceToDepthDescriptor, name);
2229 }

◆ AddSplitterLayer()

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

Definition at line 2092 of file Network.cpp.

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

2094 {
2095  return m_Graph->AddLayer<SplitterLayer>(splitterDescriptor, name);
2096 }

◆ AddStackLayer()

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

Definition at line 2483 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2485 {
2486  return m_Graph->AddLayer<StackLayer>(stackDescriptor, name);
2487 }

◆ AddStandInLayer()

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

Definition at line 2490 of file Network.cpp.

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

2492 {
2493  return m_Graph->AddLayer<StandInLayer>(desc, name);
2494 }

◆ AddStridedSliceLayer()

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

Definition at line 2407 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2409 {
2410  return m_Graph->AddLayer<StridedSliceLayer>(stridedSliceDescriptor, name);
2411 }

◆ AddSubtractionLayer()

IConnectableLayer * AddSubtractionLayer ( const char *  name = nullptr)

Definition at line 2382 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2383 {
2384  return m_Graph->AddLayer<SubtractionLayer>(name);
2385 }

◆ AddSwitchLayer()

IConnectableLayer * AddSwitchLayer ( const char *  name = nullptr)

Definition at line 2445 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2446 {
2447  return m_Graph->AddLayer<SwitchLayer>(name);
2448 }

◆ AddTransposeConvolution2dLayer()

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

Definition at line 2455 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().

2459 {
2460  if (descriptor.m_BiasEnabled && !biases.has_value())
2461  {
2462  throw InvalidArgumentException("AddTransposeConvolution2dLayer: Biases cannot be empty");
2463  }
2464 
2465  const auto layer = m_Graph->AddLayer<TransposeConvolution2dLayer>(descriptor, name);
2466 
2467  layer->m_Weight = std::make_shared<ScopedTensorHandle>(weights);
2468 
2469  if (descriptor.m_BiasEnabled)
2470  {
2471  layer->m_Bias = std::make_shared<ScopedTensorHandle>(biases.value());
2472  }
2473 
2474  return layer;
2475 }

◆ AddTransposeLayer()

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

Definition at line 2477 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2479 {
2480  return m_Graph->AddLayer<TransposeLayer>(transposeDescriptor, name);
2481 }

◆ AddUnidirectionalSequenceLstmLayer()

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

Definition at line 2682 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().

2686 {
2687  const auto layer = m_Graph->AddLayer<UnidirectionalSequenceLstmLayer>(descriptor, name);
2688 
2689  //Lstm Basic Parameters
2690  layer->m_BasicParameters.m_InputToForgetWeights =
2691  std::make_shared<ScopedTensorHandle>(*(params.m_InputToForgetWeights));
2692  layer->m_BasicParameters.m_InputToCellWeights =
2693  std::make_shared<ScopedTensorHandle>(*(params.m_InputToCellWeights));
2694  layer->m_BasicParameters.m_InputToOutputWeights =
2695  std::make_shared<ScopedTensorHandle>(*(params.m_InputToOutputWeights));
2696  layer->m_BasicParameters.m_RecurrentToForgetWeights =
2697  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToForgetWeights));
2698  layer->m_BasicParameters.m_RecurrentToCellWeights =
2699  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToCellWeights));
2700  layer->m_BasicParameters.m_RecurrentToOutputWeights =
2701  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToOutputWeights));
2702  layer->m_BasicParameters.m_ForgetGateBias =
2703  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetGateBias));
2704  layer->m_BasicParameters.m_CellBias =
2705  std::make_shared<ScopedTensorHandle>(*(params.m_CellBias));
2706  layer->m_BasicParameters.m_OutputGateBias =
2707  std::make_shared<ScopedTensorHandle>(*(params.m_OutputGateBias));
2708 
2709  //Lstm Cifg parameters
2710  if(!descriptor.m_CifgEnabled)
2711  {
2712  if(params.m_InputToInputWeights == nullptr)
2713  {
2714  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Input To Input Weights cannot be NULL "
2715  "when CIFG is disabled.");
2716  }
2717  if(params.m_RecurrentToInputWeights == nullptr)
2718  {
2719  throw InvalidArgumentException(
2720  "AddUnidirectionalSequenceLstmLayer: Recurrent To Input Weights cannot be NULL "
2721  "when CIFG is disabled.");
2722  }
2723  if(params.m_InputGateBias == nullptr)
2724  {
2725  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Input Gate Bias cannot be NULL "
2726  "when CIFG is disabled.");
2727  }
2728  layer->m_CifgParameters.m_InputToInputWeights =
2729  std::make_shared<ScopedTensorHandle>(*(params.m_InputToInputWeights));
2730  layer->m_CifgParameters.m_RecurrentToInputWeights =
2731  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToInputWeights));
2732  layer->m_CifgParameters.m_InputGateBias =
2733  std::make_shared<ScopedTensorHandle>(*(params.m_InputGateBias));
2734  }
2735 
2736  //Lstm projection parameters
2737  if(descriptor.m_ProjectionEnabled)
2738  {
2739  if(params.m_ProjectionWeights == nullptr)
2740  {
2741  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Projection Weights cannot be NULL "
2742  "when projection is enabled.");
2743  }
2744  layer->m_ProjectionParameters.m_ProjectionWeights =
2745  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionWeights));
2746  if(params.m_ProjectionBias != nullptr)
2747  {
2748  layer->m_ProjectionParameters.m_ProjectionBias =
2749  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionBias));
2750  }
2751  }
2752 
2753  //Lstm Peephole params
2754  if(descriptor.m_PeepholeEnabled)
2755  {
2756  if(!descriptor.m_CifgEnabled)
2757  {
2758  if(params.m_CellToInputWeights == nullptr)
2759  {
2760  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Cell To Input Weights "
2761  "cannot be NULL when Peephole is enabled and CIFG disabled.");
2762  }
2763 
2764  layer->m_PeepholeParameters.m_CellToInputWeights =
2765  std::make_shared<ScopedTensorHandle>(*(params.m_CellToInputWeights));
2766  }
2767 
2768  if(params.m_CellToForgetWeights == nullptr)
2769  {
2770  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Cell To Forget Weights cannot be NULL "
2771  "when Peephole is enabled.");
2772  }
2773  if(params.m_CellToOutputWeights == nullptr)
2774  {
2775  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Cell To Output Weights cannot be NULL "
2776  "when Peephole is enabled.");
2777  }
2778 
2779  layer->m_PeepholeParameters.m_CellToForgetWeights =
2780  std::make_shared<ScopedTensorHandle>(*(params.m_CellToForgetWeights));
2781  layer->m_PeepholeParameters.m_CellToOutputWeights =
2782  std::make_shared<ScopedTensorHandle>(*(params.m_CellToOutputWeights));
2783  }
2784 
2785  //Lstm Layer Normalization params
2786  if(descriptor.m_LayerNormEnabled)
2787  {
2788  if(!descriptor.m_CifgEnabled)
2789  {
2790  if(params.m_InputLayerNormWeights == nullptr)
2791  {
2792  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Input layer normalization weights "
2793  "cannot be NULL when layer normalization is enabled and CIFG disabled.");
2794  }
2795  layer->m_LayerNormParameters.m_InputLayerNormWeights =
2796  std::make_shared<ScopedTensorHandle>(*(params.m_InputLayerNormWeights));
2797  }
2798 
2799  if(params.m_ForgetLayerNormWeights == nullptr)
2800  {
2801  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Forget layer normalization weights "
2802  "cannot be NULL when layer normalization is enabled.");
2803  }
2804  if(params.m_CellLayerNormWeights == nullptr)
2805  {
2806  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Cell layer normalization weights "
2807  "cannot be NULL when layer normalization is enabled.");
2808  }
2809  if(params.m_OutputLayerNormWeights == nullptr)
2810  {
2811  throw InvalidArgumentException("AddUnidirectionalSequenceLstmLayer: Output layer normalization weights "
2812  "cannot be NULL when layer normalization is enabled.");
2813  }
2814  layer->m_LayerNormParameters.m_ForgetLayerNormWeights =
2815  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetLayerNormWeights));
2816  layer->m_LayerNormParameters.m_CellLayerNormWeights =
2817  std::make_shared<ScopedTensorHandle>(*(params.m_CellLayerNormWeights));
2818  layer->m_LayerNormParameters.m_OutputLayerNormWeights =
2819  std::make_shared<ScopedTensorHandle>(*(params.m_OutputLayerNormWeights));
2820  }
2821  return layer;
2822 }

◆ ExecuteStrategy()

void ExecuteStrategy ( IStrategy strategy) const

Definition at line 2832 of file Network.cpp.

References NetworkImpl::GetGraph().

Referenced by NetworkImpl::GetGraph().

2833 {
2834  for (auto layer : GetGraph())
2835  {
2836  layer->ExecuteStrategy(strategy);
2837  };
2838 }
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::AddAbsLayer(), NetworkImpl::AddActivationLayer(), NetworkImpl::AddAdditionLayer(), NetworkImpl::AddArgMinMaxLayer(), NetworkImpl::AddBatchNormalizationLayer(), NetworkImpl::AddBatchToSpaceNdLayer(), NetworkImpl::AddCastLayer(), NetworkImpl::AddComparisonLayer(), NetworkImpl::AddConcatLayer(), NetworkImpl::AddConstantLayer(), NetworkImpl::AddConvolution2dLayer(), NetworkImpl::AddDepthToSpaceLayer(), NetworkImpl::AddDepthwiseConvolution2dLayer(), NetworkImpl::AddDequantizeLayer(), NetworkImpl::AddDetectionPostProcessLayer(), NetworkImpl::AddDivisionLayer(), NetworkImpl::AddElementwiseUnaryLayer(), NetworkImpl::AddEqualLayer(), NetworkImpl::AddFillLayer(), NetworkImpl::AddFloorLayer(), NetworkImpl::AddFullyConnectedLayer(), NetworkImpl::AddGatherLayer(), NetworkImpl::AddGreaterLayer(), NetworkImpl::AddInputLayer(), NetworkImpl::AddInstanceNormalizationLayer(), NetworkImpl::AddL2NormalizationLayer(), NetworkImpl::AddLogicalBinaryLayer(), NetworkImpl::AddLogSoftmaxLayer(), NetworkImpl::AddLstmLayer(), NetworkImpl::AddMaximumLayer(), NetworkImpl::AddMeanLayer(), NetworkImpl::AddMergeLayer(), NetworkImpl::AddMergerLayer(), NetworkImpl::AddMinimumLayer(), NetworkImpl::AddMultiplicationLayer(), NetworkImpl::AddNormalizationLayer(), NetworkImpl::AddOutputLayer(), NetworkImpl::AddPadLayer(), NetworkImpl::AddPermuteLayer(), NetworkImpl::AddPooling2dLayer(), NetworkImpl::AddPreluLayer(), NetworkImpl::AddQLstmLayer(), NetworkImpl::AddQuantizedLstmLayer(), NetworkImpl::AddQuantizeLayer(), NetworkImpl::AddRankLayer(), NetworkImpl::AddReduceLayer(), NetworkImpl::AddReshapeLayer(), NetworkImpl::AddResizeBilinearLayer(), NetworkImpl::AddResizeLayer(), NetworkImpl::AddRsqrtLayer(), 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, NetworkImpl::ExecuteStrategy(), and NetworkImpl::PrintGraph().

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

38  { return *m_Graph; }

◆ PrintGraph()

Status PrintGraph ( )

Definition at line 1799 of file Network.cpp.

References armnn::Success.

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

1800 {
1801  m_Graph->Print();
1802  return Status::Success;
1803 }

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