From 6940dd720ebb6b3d1df8ca203ab696daefe58189 Mon Sep 17 00:00:00 2001 From: Jim Flynn Date: Fri, 20 Mar 2020 12:25:56 +0000 Subject: renamed Documentation folder 20.02 and added .nojekyll file Signed-off-by: Jim Flynn --- ...ns_1_1_optimize_consecutive_reshapes_impl.xhtml | 239 +++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 20.02/classarmnn_1_1optimizations_1_1_optimize_consecutive_reshapes_impl.xhtml (limited to '20.02/classarmnn_1_1optimizations_1_1_optimize_consecutive_reshapes_impl.xhtml') diff --git a/20.02/classarmnn_1_1optimizations_1_1_optimize_consecutive_reshapes_impl.xhtml b/20.02/classarmnn_1_1optimizations_1_1_optimize_consecutive_reshapes_impl.xhtml new file mode 100644 index 0000000000..5879d5a337 --- /dev/null +++ b/20.02/classarmnn_1_1optimizations_1_1_optimize_consecutive_reshapes_impl.xhtml @@ -0,0 +1,239 @@ + + + + + + + + + + + + + +ArmNN: OptimizeConsecutiveReshapesImpl Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + ArmNN + + + +
+
+  20.02 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
OptimizeConsecutiveReshapesImpl Class Reference
+
+
+ +

#include <OptimizeConsecutiveReshapes.hpp>

+ + + + + +

+Public Member Functions

void Run (Graph &graph, InputSlot &connection) const
 Run for every connection between a base ReshapeLayer and a child ReshapeLayer. More...
 
+ + + + + +

+Protected Member Functions

 OptimizeConsecutiveReshapesImpl ()=default
 
 ~OptimizeConsecutiveReshapesImpl ()=default
 
+

Detailed Description

+
+

Definition at line 14 of file OptimizeConsecutiveReshapes.hpp.

+

Constructor & Destructor Documentation

+ +

◆ OptimizeConsecutiveReshapesImpl()

+ +
+
+ + + + + +
+ + + + + + + +
OptimizeConsecutiveReshapesImpl ()
+
+protecteddefault
+
+
+ +

◆ ~OptimizeConsecutiveReshapesImpl()

+ +
+
+ + + + + +
+ + + + + + + +
~OptimizeConsecutiveReshapesImpl ()
+
+protecteddefault
+
+
+

Member Function Documentation

+ +

◆ Run()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Run (Graphgraph,
InputSlotconnection 
) const
+
+inline
+
+ +

Run for every connection between a base ReshapeLayer and a child ReshapeLayer.

+

Inserts an equivalent ReshapeLayer that bypasses both for that connection.

+ +

Definition at line 19 of file OptimizeConsecutiveReshapes.hpp.

+ +

References InputSlot::GetConnectedOutputSlot(), Layer::GetInputSlot(), Layer::GetName(), OutputSlot::GetNumConnections(), Layer::GetOutputHandler(), Layer::GetOutputSlot(), InputSlot::GetOwningLayer(), OutputSlot::GetOwningLayer(), TensorInfo::GetShape(), OutputHandler::GetTensorInfo(), Layer::GetType(), Graph::InsertNewLayer(), OutputSlot::MoveAllConnections(), OptimizeConsecutiveReshapesImpl::OptimizeConsecutiveReshapesImpl(), armnn::Reshape, OutputHandler::SetTensorInfo(), and OptimizeConsecutiveReshapesImpl::~OptimizeConsecutiveReshapesImpl().

+
20  {
21  Layer& base = connection.GetConnectedOutputSlot()->GetOwningLayer();
22  Layer& child = connection.GetOwningLayer();
23 
24  BOOST_ASSERT(base.GetType() == LayerType::Reshape);
25  BOOST_ASSERT(child.GetType() == LayerType::Reshape);
26 
27  OutputSlot* parentOut = base.GetInputSlot(0).GetConnectedOutputSlot();
28 
29  const TensorInfo& inInfo = parentOut->GetTensorInfo();
30  const TensorInfo& outInfo = child.GetOutputHandler().GetTensorInfo();
31 
32  // This Optimization is only appropriate when the base ReshapeLayer is connected to the child ReshapeLayer
33  // and no other Layer.
34  if (base.GetOutputSlot(0).GetNumConnections() > 1)
35  {
36  return;
37  }
38 
39  if (inInfo.GetShape() != outInfo.GetShape())
40  {
41  // Inserts equivalent reshape before base layer.
42  const std::string name = std::string("merged-") + base.GetName() + std::string("-with-") + child.GetName();
43  const ReshapeDescriptor descriptor{outInfo.GetShape()};
44  auto& newReshape = *graph.InsertNewLayer<ReshapeLayer>(base.GetInputSlot(0), descriptor, name.c_str());
45 
46  // Sets tensor info for new layer.
47  newReshape.GetOutputHandler().SetTensorInfo(outInfo);
48  // Parent is now the new layer.
49  parentOut = &newReshape.GetOutputSlot();
50  }
51 
52  // Moves connections in child output to parent layer.
53  // Child layer will be removed as it's left unconnected.
54  // Base layer will be removed if left unconnected.
55  child.GetOutputSlot().MoveAllConnections(*parentOut);
56  }
+
+
+
+
The documentation for this class was generated from the following file: +
+
+ + + + -- cgit v1.2.1