ONE - On-device Neural Engine
Loading...
Searching...
No Matches
luci::FusePReluPass Struct Referencefinal

Class to fuse certain pattern of subgraph into CirclePRelu with auxiliary nodes. More...

#include <FusePReluPass.h>

Collaboration diagram for luci::FusePReluPass:

Public Member Functions

const char * name (void) const final
 
bool run (loco::Graph *g) final
 Run the pass.
 
- Public Member Functions inherited from logo::Pass
virtual ~Pass ()=default
 

Detailed Description

Class to fuse certain pattern of subgraph into CirclePRelu with auxiliary nodes.

For detailed subgraph pattern to be fused, please check its implementation.

Definition at line 31 of file FusePReluPass.h.

Member Function Documentation

◆ name()

const char * luci::FusePReluPass::name ( void  ) const
inlinefinalvirtual

Reimplemented from logo::Pass.

Definition at line 33 of file FusePReluPass.h.

33{ return "luci::FusePReluPass"; }

◆ run()

bool luci::FusePReluPass::run ( loco::Graph graph)
finalvirtual

Run the pass.

Returns
false if there was nothing changed

Implements logo::Pass.

Definition at line 185 of file FusePReluPass.cpp.

186{
187 bool changed = false;
188
189 for (auto node : loco::active_nodes(loco::output_nodes(g)))
190 {
191 auto add = dynamic_cast<luci::CircleAdd *>(node);
192 if (not add)
193 continue;
194
195 if (fuse_prelu(add))
196 changed = true;
197 }
198
199 return changed;
200}
ADD in Circle.
Definition CircleAdd.h:34
std::set< loco::Node * > active_nodes(const std::vector< loco::Node * > &roots)
Enumerate all the nodes required to compute "roots".
std::vector< Node * > output_nodes(Graph *)
Definition Graph.cpp:101

References loco::active_nodes(), and loco::output_nodes().

Referenced by package.infer.session::inference().


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