22 for (
auto&& layer : layers)
24 for (
auto&& it = layer->BeginInputSlots(); it != layer->EndInputSlots(); ++it)
26 result.push_back(&(*it));
38 for (
auto&& layer : layers)
40 for (
auto&& it = layer->BeginOutputSlots(); it != layer->EndOutputSlots(); ++it)
42 result.push_back(&(*it));
52 std::vector<Layer*> untouchedVector;
53 for (
const auto& pair : untouched)
55 Layer* layer = pair.second;
63 template<
typename LayerType>
72 replacementLayer->SetAdditionalInfoForObject(std::make_shared<ActivationDescriptor>(activationDesc));
76 {baseLayer, activationLayer});
79 optimizationViews.
AddSubstitution({substitutionSubgraph, replacementSubgraph});
80 return replacementLayer;
83 template<
typename LayerType>
93 replacementLayer->SetAdditionalInfoForObject(std::make_shared<ActivationDescriptor>(activationDesc));
97 {baseLayer, activationLayer});
100 optimizationViews.
AddSubstitution({substitutionSubgraph, replacementSubgraph});
101 return replacementLayer;
104 template<
typename LayerType>
117 replacementLayer->m_Weight = std::move(baseLayer->m_Weight);
118 replacementLayer->m_Bias = std::move(baseLayer->m_Bias);
120 return replacementLayer;
LayerT * AddLayer(Args &&... args)
Adds a new layer, of type LayerType, to the graph constructed with the arguments passed.
void ReportUntouchedLayers(OptimizationViews &optimizationViews, std::map< LayerGuid, Layer *> untouched)
std::vector< OutputSlot * > OutputSlots
void AddSubstitution(SubstitutionPair &&substitution)
This layer represents an activation operation with the specified activation function.
Copyright (c) 2020 ARM Limited.
LayerType * FuseLayerWithParameters(OptimizationViews &optimizationViews, LayerType *baseLayer, ActivationLayer *activationLayer, ActivationDescriptor &activationDesc, std::string name)
The SubgraphView class represents a subgraph of a Graph.
LayerType * FuseLayerWithoutParameters(OptimizationViews &optimizationViews, LayerType *baseLayer, ActivationLayer *activationLayer, ActivationDescriptor &activationDesc, std::string name)
SubgraphView::InputSlots CreateInputsFrom(const std::vector< Layer *> &layers)
An ActivationDescriptor for the ActivationLayer.
void AddUntouchedSubgraph(SubgraphView &&subgraph)
std::vector< InputSlot * > InputSlots
SubgraphView::OutputSlots CreateOutputsFrom(const std::vector< Layer *> &layers)
LayerType * FuseLayerWithWeightsAndBiases(OptimizationViews &optimizationViews, LayerType *baseLayer, ActivationLayer *activationLayer, ActivationDescriptor &activationDesc, std::string name)