ArmNN
 21.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)
 
IConnectableLayerAddArgMinMaxLayer (const ArgMinMaxDescriptor &desc, 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)
 
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)
 
IConnectableLayerAddElementwiseUnaryLayer (const ElementwiseUnaryDescriptor &elementwiseUnaryDescriptor, const char *name=nullptr)
 
IConnectableLayerAddFillLayer (const FillDescriptor &fillDescriptor, 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)
 
IConnectableLayerAddFullyConnectedLayer (const FullyConnectedDescriptor &fullyConnectedDescriptor, const ConstTensor &weights, const char *name=nullptr)
 
IConnectableLayerAddFullyConnectedLayer (const FullyConnectedDescriptor &fullyConnectedDescriptor, const ConstTensor &weights, const ConstTensor &biases, const char *name=nullptr)
 
IConnectableLayerAddGatherLayer (const char *name=nullptr)
 
IConnectableLayerAddGatherLayer (const GatherDescriptor &gatherDescriptor, const char *name=nullptr)
 
IConnectableLayerAddPermuteLayer (const PermuteDescriptor &permuteDescriptor, const char *name=nullptr)
 
IConnectableLayerAddPooling2dLayer (const Pooling2dDescriptor &pooling2dDescriptor, const char *name=nullptr)
 
IConnectableLayerAddActivationLayer (const ActivationDescriptor &activationDescriptor, const char *name=nullptr)
 
IConnectableLayerAddNormalizationLayer (const NormalizationDescriptor &normalizationDescriptor, 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)
 
IConnectableLayerAddMergerLayer (const MergerDescriptor &mergerDescriptor, const char *name=nullptr)
 
IConnectableLayerAddAbsLayer (const char *name=nullptr)
 
IConnectableLayerAddAdditionLayer (const char *name=nullptr)
 
IConnectableLayerAddMultiplicationLayer (const char *name=nullptr)
 
IConnectableLayerAddBatchNormalizationLayer (const BatchNormalizationDescriptor &desc, const ConstTensor &mean, const ConstTensor &variance, const ConstTensor &beta, const ConstTensor &gamma, const char *name=nullptr)
 
IConnectableLayerAddRankLayer (const char *name=nullptr)
 
IConnectableLayerAddResizeBilinearLayer (const ResizeBilinearDescriptor &resizeDesc, const char *name=nullptr)
 
IConnectableLayerAddResizeLayer (const ResizeDescriptor &resizeDescriptor, const char *name=nullptr)
 
IConnectableLayerAddReduceLayer (const ReduceDescriptor &reduceDescriptor, 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)
 
IConnectableLayerAddConstantLayer (const ConstTensor &input, const char *name=nullptr)
 
IConnectableLayerAddReshapeLayer (const ReshapeDescriptor &reshapeDescriptor, const char *name=nullptr)
 
IConnectableLayerAddSpaceToBatchNdLayer (const SpaceToBatchNdDescriptor &spaceToBatchNdDescriptor, const char *name=nullptr)
 
IConnectableLayerAddSpaceToDepthLayer (const SpaceToDepthDescriptor &spaceToDepthDescriptor, const char *name=nullptr)
 
IConnectableLayerAddFloorLayer (const char *name=nullptr)
 
IConnectableLayerAddOutputLayer (LayerBindingId id, const char *name=nullptr)
 
IConnectableLayerAddLstmLayer (const LstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
 
IConnectableLayerAddDivisionLayer (const char *name=nullptr)
 
IConnectableLayerAddSubtractionLayer (const char *name=nullptr)
 
IConnectableLayerAddMaximumLayer (const char *name=nullptr)
 
IConnectableLayerAddMeanLayer (const MeanDescriptor &meanDescriptor, const char *name=nullptr)
 
IConnectableLayerAddPadLayer (const PadDescriptor &padDescriptor, const char *name=nullptr)
 
IConnectableLayerAddQuantizeLayer (const char *name=nullptr)
 
IConnectableLayerAddStridedSliceLayer (const StridedSliceDescriptor &stridedSliceDescriptor, const char *name=nullptr)
 
IConnectableLayerAddMinimumLayer (const char *name=nullptr)
 
IConnectableLayerAddGreaterLayer (const char *name=nullptr)
 
IConnectableLayerAddEqualLayer (const char *name=nullptr)
 
IConnectableLayerAddRsqrtLayer (const char *name=nullptr)
 
IConnectableLayerAddMergeLayer (const char *name=nullptr)
 
IConnectableLayerAddSwitchLayer (const char *name=nullptr)
 
IConnectableLayerAddPreluLayer (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)
 
IConnectableLayerAddStackLayer (const StackDescriptor &stackDescriptor, const char *name=nullptr)
 
IConnectableLayerAddStandInLayer (const StandInDescriptor &descriptor, const char *name=nullptr)
 
IConnectableLayerAddQLstmLayer (const QLstmDescriptor &descriptor, const LstmInputParams &params, const char *name=nullptr)
 
IConnectableLayerAddQuantizedLstmLayer (const QuantizedLstmInputParams &params, const char *name=nullptr)
 
IConnectableLayerAddLogicalBinaryLayer (const LogicalBinaryDescriptor &logicalBinaryDescriptor, 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 1734 of file Network.cpp.

1735 : m_NetworkOptions(networkOptions),
1736  m_Graph(std::make_unique<Graph>(GetShapeInferenceMethod()))
1737 {}

◆ ~NetworkImpl()

Definition at line 1739 of file Network.cpp.

1740 {
1741 }

Member Function Documentation

◆ Accept()

void Accept ( ILayerVisitor visitor) const

Definition at line 2595 of file Network.cpp.

References NetworkImpl::GetGraph().

Referenced by NetworkImpl::GetGraph().

2596 {
2597  for (auto layer : GetGraph())
2598  {
2599  layer->Accept(visitor);
2600  };
2601 }
const Graph & GetGraph() const
Definition: Network.hpp:37

◆ AddAbsLayer()

IConnectableLayer * AddAbsLayer ( const char *  name = nullptr)

Definition at line 2032 of file Network.cpp.

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

Referenced by NetworkImpl::GetGraph().

2033 {
2034  return AddElementwiseUnaryLayer(ElementwiseUnaryDescriptor(UnaryOperation::Abs), name);
2035 }
IConnectableLayer * AddElementwiseUnaryLayer(const ElementwiseUnaryDescriptor &elementwiseUnaryDescriptor, const char *name=nullptr)
Definition: Network.cpp:1771

◆ AddActivationLayer()

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

Definition at line 1980 of file Network.cpp.

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

1982 {
1983  return m_Graph->AddLayer<ActivationLayer>(activationDescriptor, name);
1984 }

◆ AddAdditionLayer()

IConnectableLayer * AddAdditionLayer ( const char *  name = nullptr)

Definition at line 2037 of file Network.cpp.

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

2038 {
2039  return m_Graph->AddLayer<AdditionLayer>(name);
2040 }

◆ AddArgMinMaxLayer()

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

Definition at line 1986 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1988 {
1989  return m_Graph->AddLayer<ArgMinMaxLayer>(argMinMaxDescriptor, name);
1990 }

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

References BatchNormalizationLayer::m_Mean.

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

2058 {
2059  const auto layer = m_Graph->AddLayer<BatchNormalizationLayer>(desc, name);
2060 
2061  layer->m_Mean = std::make_shared<ScopedTensorHandle>(mean);
2062  layer->m_Variance = std::make_shared<ScopedTensorHandle>(variance);
2063  layer->m_Beta = std::make_shared<ScopedTensorHandle>(beta);
2064  layer->m_Gamma = std::make_shared<ScopedTensorHandle>(gamma);
2065 
2066  return layer;
2067 }

◆ AddBatchToSpaceNdLayer()

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

Definition at line 1754 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1756 {
1757  return m_Graph->AddLayer<BatchToSpaceNdLayer>(batchToSpaceNdDescriptor, name);
1758 }

◆ AddCastLayer()

IConnectableLayer * AddCastLayer ( const char *  name = nullptr)

Definition at line 1760 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1761 {
1762  return m_Graph->AddLayer<CastLayer>(name);
1763 }

◆ AddComparisonLayer()

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

Definition at line 1765 of file Network.cpp.

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

1767 {
1768  return m_Graph->AddLayer<ComparisonLayer>(comparisonDescriptor, name);
1769 }

◆ AddConcatLayer()

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

◆ AddConstantLayer()

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

Definition at line 2117 of file Network.cpp.

References ConstantLayer::m_LayerOutput.

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

2118 {
2119  auto layer = m_Graph->AddLayer<ConstantLayer>(name);
2120 
2121  layer->m_LayerOutput = std::make_shared<ScopedTensorHandle>(input);
2122 
2123  return layer;
2124 }

◆ AddConvolution2dLayer() [1/3]

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

Definition at line 1876 of file Network.cpp.

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

1880 {
1881  return AddConvolution2dLayerImpl(convolution2dDescriptor, weights, biases, name);
1882 }

◆ AddConvolution2dLayer() [2/3]

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

Definition at line 1884 of file Network.cpp.

1887 {
1888  Optional<ConstTensor> biases;
1889  return AddConvolution2dLayerImpl(convolution2dDescriptor, weights, biases, name);
1890 }

◆ AddConvolution2dLayer() [3/3]

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

Definition at line 1892 of file Network.cpp.

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

1896 {
1897  Optional<ConstTensor> optionalBiases(biases);
1898  return AddConvolution2dLayerImpl(convolution2dDescriptor, weights, optionalBiases, name);
1899 }

◆ AddDepthToSpaceLayer()

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

Definition at line 1924 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

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

◆ AddDepthwiseConvolution2dLayer() [1/3]

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

Definition at line 1930 of file Network.cpp.

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

1935 {
1936  return AddDepthwiseConvolution2dLayerImpl(convolution2dDescriptor, weights, biases, name);
1937 }

◆ AddDepthwiseConvolution2dLayer() [2/3]

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

Definition at line 1939 of file Network.cpp.

1943 {
1944  Optional<ConstTensor> biases;
1945  return AddDepthwiseConvolution2dLayerImpl(convolution2dDescriptor, weights, biases, name);
1946 }

◆ AddDepthwiseConvolution2dLayer() [3/3]

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

Definition at line 1948 of file Network.cpp.

1953 {
1954  Optional<ConstTensor> optionalBiases(biases);
1955  return AddDepthwiseConvolution2dLayerImpl(convolution2dDescriptor, weights, optionalBiases, name);
1956 }

◆ AddDequantizeLayer()

IConnectableLayer * AddDequantizeLayer ( const char *  name = nullptr)

Definition at line 2315 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2316 {
2317  return m_Graph->AddLayer<DequantizeLayer>(name);
2318 }

◆ AddDetectionPostProcessLayer()

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

Definition at line 1958 of file Network.cpp.

References anchors(), and DetectionPostProcessLayer::m_Anchors.

Referenced by NetworkImpl::GetGraph().

1960 {
1961  const auto layer = m_Graph->AddLayer<DetectionPostProcessLayer>(descriptor, name);
1962 
1963  layer->m_Anchors = std::make_shared<ScopedTensorHandle>(anchors);
1964 
1965  return layer;
1966 }
std::vector< float > anchors({ 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 10.5f, 1.0f, 1.0f, 0.5f, 10.5f, 1.0f, 1.0f, 0.5f, 100.5f, 1.0f, 1.0f })

◆ AddDivisionLayer()

IConnectableLayer * AddDivisionLayer ( const char *  name = nullptr)

Definition at line 2290 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2291 {
2292  return m_Graph->AddLayer<DivisionLayer>(name);
2293 }

◆ AddElementwiseUnaryLayer()

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

Definition at line 1771 of file Network.cpp.

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

1773 {
1774  return m_Graph->AddLayer<ElementwiseUnaryLayer>(elementwiseUnaryDescriptor, name);
1775 }

◆ AddEqualLayer()

IConnectableLayer * AddEqualLayer ( const char *  name = nullptr)

Definition at line 2331 of file Network.cpp.

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

Referenced by NetworkImpl::GetGraph().

2332 {
2333  return AddComparisonLayer(ComparisonDescriptor(ComparisonOperation::Equal), name);
2334 }
IConnectableLayer * AddComparisonLayer(const ComparisonDescriptor &comparisonDescriptor, const char *name=nullptr)
Definition: Network.cpp:1765

◆ AddFillLayer()

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

◆ AddFloorLayer()

IConnectableLayer * AddFloorLayer ( const char *  name = nullptr)

Definition at line 2144 of file Network.cpp.

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

2145 {
2146  return m_Graph->AddLayer<FloorLayer>(name);
2147 }

◆ AddFullyConnectedLayer() [1/4]

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

Definition at line 1812 of file Network.cpp.

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

1816 {
1817  return AddFullyConnectedLayerImpl(fullyConnectedDescriptor, weights, biases, name);
1818 }

◆ AddFullyConnectedLayer() [2/4]

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

Definition at line 1820 of file Network.cpp.

1824 {
1825  Optional<ConstTensor> optionalWeights(weights);
1826  return AddFullyConnectedLayerImpl(fullyConnectedDescriptor, optionalWeights, biases, name);
1827 }

◆ AddFullyConnectedLayer() [3/4]

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

Definition at line 1829 of file Network.cpp.

1832 {
1833  Optional<ConstTensor> optionalWeights(weights);
1834  Optional<ConstTensor> biases;
1835  return AddFullyConnectedLayerImpl(fullyConnectedDescriptor, optionalWeights, biases, name);
1836 }

◆ AddFullyConnectedLayer() [4/4]

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

Definition at line 1838 of file Network.cpp.

1842 {
1843  Optional<ConstTensor> optionalWeights(weights);
1844  Optional<ConstTensor> optionalBiases(biases);
1845  return AddFullyConnectedLayerImpl(fullyConnectedDescriptor, optionalWeights, optionalBiases, name);
1846 }

◆ AddGatherLayer() [1/2]

IConnectableLayer * AddGatherLayer ( const char *  name = nullptr)

Definition at line 2341 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2342 {
2343  GatherDescriptor gatherDescriptor{};
2344  return AddGatherLayer(gatherDescriptor, name);
2345 }
IConnectableLayer * AddGatherLayer(const char *name=nullptr)
Definition: Network.cpp:2341

◆ AddGatherLayer() [2/2]

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

Definition at line 2347 of file Network.cpp.

2349 {
2350  return m_Graph->AddLayer<GatherLayer>(gatherDescriptor, name);
2351 }

◆ AddGreaterLayer()

IConnectableLayer * AddGreaterLayer ( const char *  name = nullptr)

Definition at line 2326 of file Network.cpp.

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

Referenced by NetworkImpl::GetGraph().

2327 {
2328  return AddComparisonLayer(ComparisonDescriptor(ComparisonOperation::Greater), name);
2329 }
IConnectableLayer * AddComparisonLayer(const ComparisonDescriptor &comparisonDescriptor, const char *name=nullptr)
Definition: Network.cpp:1765

◆ AddInputLayer()

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

Definition at line 1749 of file Network.cpp.

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

1750 {
1751  return m_Graph->AddLayer<InputLayer>(id, name);
1752 }

◆ AddInstanceNormalizationLayer()

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

Definition at line 2099 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2101 {
2102  return m_Graph->AddLayer<InstanceNormalizationLayer>(desc, name);
2103 }

◆ AddL2NormalizationLayer()

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

Definition at line 2105 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2107 {
2108  return m_Graph->AddLayer<L2NormalizationLayer>(desc, name);
2109 }

◆ AddLogicalBinaryLayer()

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

Definition at line 2589 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2591 {
2592  return m_Graph->AddLayer<LogicalBinaryLayer>(logicalBinaryDescriptor, name);
2593 }

◆ AddLogSoftmaxLayer()

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

Definition at line 2111 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2113 {
2114  return m_Graph->AddLayer<LogSoftmaxLayer>(desc, name);
2115 }

◆ AddLstmLayer()

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

Definition at line 2149 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 armnn::BOOST_AUTO_TEST_CASE(), and NetworkImpl::GetGraph().

2152 {
2153  const auto layer = m_Graph->AddLayer<LstmLayer>(descriptor, name);
2154 
2155  //Lstm Basic Parameters
2156  layer->m_BasicParameters.m_InputToForgetWeights =
2157  std::make_shared<ScopedTensorHandle>(*(params.m_InputToForgetWeights));
2158  layer->m_BasicParameters.m_InputToCellWeights =
2159  std::make_shared<ScopedTensorHandle>(*(params.m_InputToCellWeights));
2160  layer->m_BasicParameters.m_InputToOutputWeights =
2161  std::make_shared<ScopedTensorHandle>(*(params.m_InputToOutputWeights));
2162  layer->m_BasicParameters.m_RecurrentToForgetWeights =
2163  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToForgetWeights));
2164  layer->m_BasicParameters.m_RecurrentToCellWeights =
2165  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToCellWeights));
2166  layer->m_BasicParameters.m_RecurrentToOutputWeights =
2167  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToOutputWeights));
2168  layer->m_BasicParameters.m_ForgetGateBias =
2169  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetGateBias));
2170  layer->m_BasicParameters.m_CellBias =
2171  std::make_shared<ScopedTensorHandle>(*(params.m_CellBias));
2172  layer->m_BasicParameters.m_OutputGateBias =
2173  std::make_shared<ScopedTensorHandle>(*(params.m_OutputGateBias));
2174 
2175  //Lstm Cifg parameters
2176  if(!descriptor.m_CifgEnabled)
2177  {
2178  if(params.m_InputToInputWeights == nullptr)
2179  {
2180  throw InvalidArgumentException("AddLstmLayer: Input To Input Weights cannot be NULL "
2181  "when CIFG is disabled.");
2182  }
2183  if(params.m_RecurrentToInputWeights == nullptr)
2184  {
2185  throw InvalidArgumentException(
2186  "AddLstmLayer: Recurrent To Input Weights cannot be NULL "
2187  "when CIFG is disabled.");
2188  }
2189  if(params.m_InputGateBias == nullptr)
2190  {
2191  throw InvalidArgumentException("AddLstmLayer: Input Gate Bias cannot be NULL "
2192  "when CIFG is disabled.");
2193  }
2194  layer->m_CifgParameters.m_InputToInputWeights =
2195  std::make_shared<ScopedTensorHandle>(*(params.m_InputToInputWeights));
2196  layer->m_CifgParameters.m_RecurrentToInputWeights =
2197  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToInputWeights));
2198  layer->m_CifgParameters.m_InputGateBias =
2199  std::make_shared<ScopedTensorHandle>(*(params.m_InputGateBias));
2200  }
2201 
2202  //Lstm projection parameters
2203  if(descriptor.m_ProjectionEnabled)
2204  {
2205  if(params.m_ProjectionWeights == nullptr)
2206  {
2207  throw InvalidArgumentException("AddLstmLayer: Projection Weights cannot be NULL "
2208  "when projection is enabled.");
2209  }
2210  layer->m_ProjectionParameters.m_ProjectionWeights =
2211  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionWeights));
2212  if(params.m_ProjectionBias != nullptr)
2213  {
2214  layer->m_ProjectionParameters.m_ProjectionBias =
2215  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionBias));
2216  }
2217  }
2218 
2219  //Lstm Peephole params
2220  if(descriptor.m_PeepholeEnabled)
2221  {
2222  if(!descriptor.m_CifgEnabled)
2223  {
2224  if(params.m_CellToInputWeights == nullptr)
2225  {
2226  throw InvalidArgumentException("AddLstmLayer: Cell To Input Weights cannot be NULL "
2227  "when Peephole is enabled and CIFG disabled.");
2228  }
2229 
2230  layer->m_PeepholeParameters.m_CellToInputWeights =
2231  std::make_shared<ScopedTensorHandle>(*(params.m_CellToInputWeights));
2232  }
2233 
2234  if(params.m_CellToForgetWeights == nullptr)
2235  {
2236  throw InvalidArgumentException("AddLstmLayer: Cell To Forget Weights cannot be NULL "
2237  "when Peephole is enabled.");
2238  }
2239  if(params.m_CellToOutputWeights == nullptr)
2240  {
2241  throw InvalidArgumentException("AddLstmLayer: Cell To Output Weights cannot be NULL "
2242  "when Peephole is enabled.");
2243  }
2244 
2245  layer->m_PeepholeParameters.m_CellToForgetWeights =
2246  std::make_shared<ScopedTensorHandle>(*(params.m_CellToForgetWeights));
2247  layer->m_PeepholeParameters.m_CellToOutputWeights =
2248  std::make_shared<ScopedTensorHandle>(*(params.m_CellToOutputWeights));
2249  }
2250 
2251  //Lstm Layer Normalization params
2252  if(descriptor.m_LayerNormEnabled)
2253  {
2254  if(!descriptor.m_CifgEnabled)
2255  {
2256  if(params.m_InputLayerNormWeights == nullptr)
2257  {
2258  throw InvalidArgumentException("AddLstmLayer: Input layer normalization weights cannot be NULL "
2259  "when layer normalization is enabled and CIFG disabled.");
2260  }
2261  layer->m_LayerNormParameters.m_InputLayerNormWeights =
2262  std::make_shared<ScopedTensorHandle>(*(params.m_InputLayerNormWeights));
2263  }
2264 
2265  if(params.m_ForgetLayerNormWeights == nullptr)
2266  {
2267  throw InvalidArgumentException("AddLstmLayer: Forget layer normalization weights cannot be NULL "
2268  "when layer normalization is enabled.");
2269  }
2270  if(params.m_CellLayerNormWeights == nullptr)
2271  {
2272  throw InvalidArgumentException("AddLstmLayer: Cell layer normalization weights cannot be NULL "
2273  "when layer normalization is enabled.");
2274  }
2275  if(params.m_OutputLayerNormWeights == nullptr)
2276  {
2277  throw InvalidArgumentException("AddLstmLayer: Output layer normalization weights cannot be NULL "
2278  "when layer normalization is enabled.");
2279  }
2280  layer->m_LayerNormParameters.m_ForgetLayerNormWeights =
2281  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetLayerNormWeights));
2282  layer->m_LayerNormParameters.m_CellLayerNormWeights =
2283  std::make_shared<ScopedTensorHandle>(*(params.m_CellLayerNormWeights));
2284  layer->m_LayerNormParameters.m_OutputLayerNormWeights =
2285  std::make_shared<ScopedTensorHandle>(*(params.m_OutputLayerNormWeights));
2286  }
2287  return layer;
2288 }

◆ AddMaximumLayer()

IConnectableLayer * AddMaximumLayer ( const char *  name = nullptr)

Definition at line 2016 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2017 {
2018  return m_Graph->AddLayer<MaximumLayer>(name);
2019 }

◆ AddMeanLayer()

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

Definition at line 2300 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2301 {
2302  return m_Graph->AddLayer<MeanLayer>(meanDescriptor,name);
2303 }

◆ AddMergeLayer()

IConnectableLayer * AddMergeLayer ( const char *  name = nullptr)

Definition at line 2353 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2354 {
2355  return m_Graph->AddLayer<MergeLayer>(name);
2356 }

◆ AddMergerLayer()

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

Definition at line 2026 of file Network.cpp.

References NetworkImpl::AddConcatLayer().

Referenced by NetworkImpl::GetGraph().

2028 {
2029  return AddConcatLayer(mergerDescriptor, name);
2030 }
IConnectableLayer * AddConcatLayer(const ConcatDescriptor &concatDescriptor, const char *name=nullptr)
Definition: Network.cpp:1848

◆ AddMinimumLayer()

IConnectableLayer * AddMinimumLayer ( const char *  name = nullptr)

Definition at line 2021 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2022 {
2023  return m_Graph->AddLayer<MinimumLayer>(name);
2024 }

◆ AddMultiplicationLayer()

IConnectableLayer * AddMultiplicationLayer ( const char *  name = nullptr)

Definition at line 2042 of file Network.cpp.

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

2043 {
2044  return m_Graph->AddLayer<MultiplicationLayer>(name);
2045 }

◆ AddNormalizationLayer()

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

Definition at line 1992 of file Network.cpp.

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

1995 {
1996  return m_Graph->AddLayer<NormalizationLayer>(normalizationDescriptor, name);
1997 }

◆ AddOutputLayer()

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

Definition at line 2047 of file Network.cpp.

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

2048 {
2049  return m_Graph->AddLayer<OutputLayer>(id, name);
2050 }

◆ AddPadLayer()

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

Definition at line 2305 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2306 {
2307  return m_Graph->AddLayer<PadLayer>(padDescriptor,name);
2308 }

◆ AddPermuteLayer()

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

Definition at line 1968 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

1970 {
1971  return m_Graph->AddLayer<PermuteLayer>(permuteDescriptor, name);
1972 }

◆ AddPooling2dLayer()

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

Definition at line 1974 of file Network.cpp.

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

1976 {
1977  return m_Graph->AddLayer<Pooling2dLayer>(pooling2dDescriptor, name);
1978 }

◆ AddPreluLayer()

IConnectableLayer * AddPreluLayer ( const char *  name = nullptr)

Definition at line 2363 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2364 {
2365  return m_Graph->AddLayer<PreluLayer>(name);
2366 }

◆ AddQLstmLayer()

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

Definition at line 2447 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 armnn::BOOST_AUTO_TEST_CASE(), and NetworkImpl::GetGraph().

2450 {
2451  const auto layer = m_Graph->AddLayer<QLstmLayer>(descriptor, name);
2452 
2453  // QLstm Basic Parameters
2454  layer->m_BasicParameters.m_InputToForgetWeights =
2455  std::make_shared<ScopedTensorHandle>(*(params.m_InputToForgetWeights));
2456  layer->m_BasicParameters.m_InputToCellWeights =
2457  std::make_shared<ScopedTensorHandle>(*(params.m_InputToCellWeights));
2458  layer->m_BasicParameters.m_InputToOutputWeights =
2459  std::make_shared<ScopedTensorHandle>(*(params.m_InputToOutputWeights));
2460  layer->m_BasicParameters.m_RecurrentToForgetWeights =
2461  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToForgetWeights));
2462  layer->m_BasicParameters.m_RecurrentToCellWeights =
2463  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToCellWeights));
2464  layer->m_BasicParameters.m_RecurrentToOutputWeights =
2465  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToOutputWeights));
2466  layer->m_BasicParameters.m_ForgetGateBias =
2467  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetGateBias));
2468  layer->m_BasicParameters.m_CellBias =
2469  std::make_shared<ScopedTensorHandle>(*(params.m_CellBias));
2470  layer->m_BasicParameters.m_OutputGateBias =
2471  std::make_shared<ScopedTensorHandle>(*(params.m_OutputGateBias));
2472 
2473  // QLstm Cifg parameters
2474  if(!descriptor.m_CifgEnabled)
2475  {
2476  if(params.m_InputToInputWeights == nullptr)
2477  {
2478  throw InvalidArgumentException("AddQLstmLayer: Input To Input Weights cannot be NULL");
2479  }
2480 
2481  if(params.m_RecurrentToInputWeights == nullptr)
2482  {
2483  throw InvalidArgumentException(
2484  "AddQLstmLayer: Recurrent To Input Weights cannot be NULL");
2485  }
2486 
2487  if(params.m_InputGateBias == nullptr)
2488  {
2489  throw InvalidArgumentException("AddQLstmLayer: Input Gate Bias cannot be NULL");
2490  }
2491 
2492  layer->m_CifgParameters.m_InputToInputWeights =
2493  std::make_shared<ScopedTensorHandle>(*(params.m_InputToInputWeights));
2494  layer->m_CifgParameters.m_RecurrentToInputWeights =
2495  std::make_shared<ScopedTensorHandle>(*(params.m_RecurrentToInputWeights));
2496  layer->m_CifgParameters.m_InputGateBias =
2497  std::make_shared<ScopedTensorHandle>(*(params.m_InputGateBias));
2498  }
2499 
2500  // QLstm Projection parameters
2501  if(descriptor.m_ProjectionEnabled)
2502  {
2503  if(params.m_ProjectionWeights == nullptr)
2504  {
2505  throw InvalidArgumentException("AddQLstmLayer: Projection Weights cannot be NULL");
2506  }
2507 
2508  layer->m_ProjectionParameters.m_ProjectionWeights =
2509  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionWeights));
2510 
2511  // Projection bias is optional even if projection is enabled
2512  if(params.m_ProjectionWeights != nullptr)
2513  {
2514  layer->m_ProjectionParameters.m_ProjectionBias =
2515  std::make_shared<ScopedTensorHandle>(*(params.m_ProjectionBias));
2516  }
2517 
2518  }
2519 
2520  // QLstm Peephole params
2521  if(descriptor.m_PeepholeEnabled)
2522  {
2523  if(params.m_CellToForgetWeights == nullptr)
2524  {
2525  throw InvalidArgumentException("AddQLstmLayer: Cell To Forget Weights cannot be NULL");
2526  }
2527 
2528  if(params.m_CellToOutputWeights == nullptr)
2529  {
2530  throw InvalidArgumentException("AddQLstmLayer: Cell To Output Weights cannot be NULL");
2531  }
2532 
2533  if(!descriptor.m_CifgEnabled)
2534  {
2535  if(params.m_CellToInputWeights == nullptr)
2536  {
2537  throw InvalidArgumentException("AddQLstmLayer: Cell To Input Weights cannot be NULL");
2538  }
2539 
2540  layer->m_PeepholeParameters.m_CellToInputWeights =
2541  std::make_shared<ScopedTensorHandle>(*(params.m_CellToInputWeights));
2542  }
2543 
2544  layer->m_PeepholeParameters.m_CellToForgetWeights =
2545  std::make_shared<ScopedTensorHandle>(*(params.m_CellToForgetWeights));
2546  layer->m_PeepholeParameters.m_CellToOutputWeights =
2547  std::make_shared<ScopedTensorHandle>(*(params.m_CellToOutputWeights));
2548  }
2549 
2550  // QLstm Layer Normalization params
2551  if(descriptor.m_LayerNormEnabled)
2552  {
2553  if(params.m_ForgetLayerNormWeights == nullptr)
2554  {
2555  throw InvalidArgumentException("AddQLstmLayer: Forget layer normalization weights cannot be NULL");
2556  }
2557 
2558  if(params.m_CellLayerNormWeights == nullptr)
2559  {
2560  throw InvalidArgumentException("AddQLstmLayer: Cell layer normalization weights cannot be NULL");
2561  }
2562 
2563  if(params.m_OutputLayerNormWeights == nullptr)
2564  {
2565  throw InvalidArgumentException("AddQLstmLayer: Output layer normalization weights cannot be NULL");
2566  }
2567 
2568  if(!descriptor.m_CifgEnabled)
2569  {
2570  if(params.m_InputLayerNormWeights == nullptr)
2571  {
2572  throw InvalidArgumentException("AddQLstmLayer: Input layer normalization weights cannot be NULL");
2573  }
2574 
2575  layer->m_LayerNormParameters.m_InputLayerNormWeights =
2576  std::make_shared<ScopedTensorHandle>(*(params.m_InputLayerNormWeights));
2577  }
2578 
2579  layer->m_LayerNormParameters.m_ForgetLayerNormWeights =
2580  std::make_shared<ScopedTensorHandle>(*(params.m_ForgetLayerNormWeights));
2581  layer->m_LayerNormParameters.m_CellLayerNormWeights =
2582  std::make_shared<ScopedTensorHandle>(*(params.m_CellLayerNormWeights));
2583  layer->m_LayerNormParameters.m_OutputLayerNormWeights =
2584  std::make_shared<ScopedTensorHandle>(*(params.m_OutputLayerNormWeights));
2585  }
2586  return layer;
2587 }

◆ AddQuantizedLstmLayer()

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

Definition at line 2409 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 armnn::BOOST_AUTO_TEST_CASE(), and NetworkImpl::GetGraph().

2411 {
2412  const auto layer = m_Graph->AddLayer<QuantizedLstmLayer>(name);
2413 
2414  // InputToX weights
2415  layer->m_QuantizedLstmParameters.m_InputToInputWeights =
2416  std::make_shared<ScopedTensorHandle>(params.GetInputToInputWeights());
2417  layer->m_QuantizedLstmParameters.m_InputToForgetWeights =
2418  std::make_shared<ScopedTensorHandle>(params.GetInputToForgetWeights());
2419  layer->m_QuantizedLstmParameters.m_InputToCellWeights =
2420  std::make_shared<ScopedTensorHandle>(params.GetInputToCellWeights());
2421  layer->m_QuantizedLstmParameters.m_InputToOutputWeights =
2422  std::make_shared<ScopedTensorHandle>(params.GetInputToOutputWeights());
2423 
2424  // RecurrentToX weights
2425  layer->m_QuantizedLstmParameters.m_RecurrentToInputWeights =
2426  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToInputWeights());
2427  layer->m_QuantizedLstmParameters.m_RecurrentToForgetWeights =
2428  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToForgetWeights());
2429  layer->m_QuantizedLstmParameters.m_RecurrentToCellWeights =
2430  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToCellWeights());
2431  layer->m_QuantizedLstmParameters.m_RecurrentToOutputWeights =
2432  std::make_shared<ScopedTensorHandle>(params.GetRecurrentToOutputWeights());
2433 
2434  // Bias
2435  layer->m_QuantizedLstmParameters.m_InputGateBias =
2436  std::make_shared<ScopedTensorHandle>(params.GetInputGateBias());
2437  layer->m_QuantizedLstmParameters.m_ForgetGateBias =
2438  std::make_shared<ScopedTensorHandle>(params.GetForgetGateBias());
2439  layer->m_QuantizedLstmParameters.m_CellBias =
2440  std::make_shared<ScopedTensorHandle>(params.GetCellBias());
2441  layer->m_QuantizedLstmParameters.m_OutputGateBias =
2442  std::make_shared<ScopedTensorHandle>(params.GetOutputGateBias());
2443 
2444  return layer;
2445 }

◆ AddQuantizeLayer()

IConnectableLayer * AddQuantizeLayer ( const char *  name = nullptr)

Definition at line 2310 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2311 {
2312  return m_Graph->AddLayer<QuantizeLayer>(name);
2313 }

◆ AddRankLayer()

IConnectableLayer * AddRankLayer ( const char *  name = nullptr)

Definition at line 2069 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2070 {
2071  return m_Graph->AddLayer<RankLayer>(name);
2072 }

◆ AddReduceLayer()

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

Definition at line 2074 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2076 {
2077  return m_Graph->AddLayer<ReduceLayer>(reduceDescriptor, name);
2078 }

◆ AddReshapeLayer()

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

Definition at line 2126 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2128 {
2129  return m_Graph->AddLayer<ReshapeLayer>(reshapeDescriptor, name);
2130 }

◆ AddResizeBilinearLayer()

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

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

2082 {
2083  ResizeDescriptor resizeDescriptor;
2084  resizeDescriptor.m_Method = ResizeMethod::Bilinear;
2085  resizeDescriptor.m_DataLayout = descriptor.m_DataLayout;
2086  resizeDescriptor.m_TargetWidth = descriptor.m_TargetWidth;
2087  resizeDescriptor.m_TargetHeight = descriptor.m_TargetHeight;
2088  resizeDescriptor.m_AlignCorners = descriptor.m_AlignCorners;
2089  resizeDescriptor.m_HalfPixelCenters = descriptor.m_HalfPixelCenters;
2090 
2091  return m_Graph->AddLayer<ResizeLayer>(resizeDescriptor, name);
2092 }

◆ AddResizeLayer()

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

Definition at line 2094 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2095 {
2096  return m_Graph->AddLayer<ResizeLayer>(resizeDescriptor, name);
2097 }

◆ AddRsqrtLayer()

IConnectableLayer * AddRsqrtLayer ( const char *  name = nullptr)

Definition at line 2336 of file Network.cpp.

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

Referenced by NetworkImpl::GetGraph().

2337 {
2338  return AddElementwiseUnaryLayer(ElementwiseUnaryDescriptor(UnaryOperation::Rsqrt), name);
2339 }
IConnectableLayer * AddElementwiseUnaryLayer(const ElementwiseUnaryDescriptor &elementwiseUnaryDescriptor, const char *name=nullptr)
Definition: Network.cpp:1771

◆ AddSliceLayer()

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

Definition at line 1999 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2000 {
2001  return m_Graph->AddLayer<SliceLayer>(sliceDescriptor, name);
2002 }

◆ AddSoftmaxLayer()

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

Definition at line 2004 of file Network.cpp.

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

2006 {
2007  return m_Graph->AddLayer<SoftmaxLayer>(softmaxDescriptor, name);
2008 }

◆ AddSpaceToBatchNdLayer()

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

Definition at line 2132 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2134 {
2135  return m_Graph->AddLayer<SpaceToBatchNdLayer>(spaceToBatchNdDescriptor, name);
2136 }

◆ AddSpaceToDepthLayer()

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

Definition at line 2138 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2140 {
2141  return m_Graph->AddLayer<SpaceToDepthLayer>(spaceToDepthDescriptor, name);
2142 }

◆ AddSplitterLayer()

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

Definition at line 2010 of file Network.cpp.

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

2012 {
2013  return m_Graph->AddLayer<SplitterLayer>(splitterDescriptor, name);
2014 }

◆ AddStackLayer()

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

Definition at line 2396 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2398 {
2399  return m_Graph->AddLayer<StackLayer>(stackDescriptor, name);
2400 }

◆ AddStandInLayer()

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

Definition at line 2403 of file Network.cpp.

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

2405 {
2406  return m_Graph->AddLayer<StandInLayer>(desc, name);
2407 }

◆ AddStridedSliceLayer()

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

Definition at line 2320 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2322 {
2323  return m_Graph->AddLayer<StridedSliceLayer>(stridedSliceDescriptor, name);
2324 }

◆ AddSubtractionLayer()

IConnectableLayer * AddSubtractionLayer ( const char *  name = nullptr)

Definition at line 2295 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2296 {
2297  return m_Graph->AddLayer<SubtractionLayer>(name);
2298 }

◆ AddSwitchLayer()

IConnectableLayer * AddSwitchLayer ( const char *  name = nullptr)

Definition at line 2358 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2359 {
2360  return m_Graph->AddLayer<SwitchLayer>(name);
2361 }

◆ AddTransposeConvolution2dLayer()

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

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

2372 {
2373  if (descriptor.m_BiasEnabled && !biases.has_value())
2374  {
2375  throw InvalidArgumentException("AddTransposeConvolution2dLayer: Biases cannot be empty");
2376  }
2377 
2378  const auto layer = m_Graph->AddLayer<TransposeConvolution2dLayer>(descriptor, name);
2379 
2380  layer->m_Weight = std::make_shared<ScopedTensorHandle>(weights);
2381 
2382  if (descriptor.m_BiasEnabled)
2383  {
2384  layer->m_Bias = std::make_shared<ScopedTensorHandle>(biases.value());
2385  }
2386 
2387  return layer;
2388 }

◆ AddTransposeLayer()

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

Definition at line 2390 of file Network.cpp.

Referenced by NetworkImpl::GetGraph().

2392 {
2393  return m_Graph->AddLayer<TransposeLayer>(transposeDescriptor, name);
2394 }

◆ ExecuteStrategy()

void ExecuteStrategy ( IStrategy strategy) const

Definition at line 2603 of file Network.cpp.

References NetworkImpl::GetGraph().

Referenced by NetworkImpl::GetGraph().

2604 {
2605  for (auto layer : GetGraph())
2606  {
2607  layer->ExecuteStrategy(strategy);
2608  };
2609 }
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::AddSliceLayer(), NetworkImpl::AddSoftmaxLayer(), NetworkImpl::AddSpaceToBatchNdLayer(), NetworkImpl::AddSpaceToDepthLayer(), NetworkImpl::AddSplitterLayer(), NetworkImpl::AddStackLayer(), NetworkImpl::AddStandInLayer(), NetworkImpl::AddStridedSliceLayer(), NetworkImpl::AddSubtractionLayer(), NetworkImpl::AddSwitchLayer(), NetworkImpl::AddTransposeConvolution2dLayer(), NetworkImpl::AddTransposeLayer(), anchors(), ARMNN_DEPRECATED_MSG, NetworkImpl::ExecuteStrategy(), and NetworkImpl::PrintGraph().

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

37 { return *m_Graph; }

◆ PrintGraph()

Status PrintGraph ( )

Definition at line 1743 of file Network.cpp.

References armnn::Success.

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

1744 {
1745  m_Graph->Print();
1746  return Status::Success;
1747 }

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