#include "graph/operand/Index.h"
#include "graph/operation/Conv2D.h"
+#include "graph/operation/MaxPool2D.h"
+#include "graph/operation/AvgPool2D.h"
+#include "graph/operation/Concat.h"
#include "graph/operation/FullyConnected.h"
+#include "graph/operation/Reshape.h"
+#include "graph/operation/Softmax.h"
+#include "graph/operation/NOP.h"
+#include "graph/operation/Permute.h"
+#include "graph/operation/Add.h"
using InitializerFn = std::function<void(::arm_compute::ITensor &)>;
{
virtual ~IInitializerGenerator() = default;
- virtual Initializer generate(const graph::operation::Conv2D::Implicit::Node &node) = 0;
- virtual Initializer generate(const graph::operation::FullyConnected::Node &node) = 0;
+ virtual Initializer generate(const graph::operation::Conv2D::Implicit::Node &)
+ {
+ return Initializer{};
+ }
+ virtual Initializer generate(const graph::operation::MaxPool2D::Implicit::Node &)
+ {
+ return Initializer{};
+ }
+ virtual Initializer generate(const graph::operation::AvgPool2D::Implicit::Node &)
+ {
+ return Initializer{};
+ }
+ virtual Initializer generate(const graph::operation::Concat::Node &) { return Initializer{}; }
+ virtual Initializer generate(const graph::operation::FullyConnected::Node &)
+ {
+ return Initializer{};
+ }
+ virtual Initializer generate(const graph::operation::Reshape::Node &) { return Initializer{}; }
+ virtual Initializer generate(const graph::operation::Softmax::Node &) { return Initializer{}; }
+ virtual Initializer generate(const graph::operation::NOP::Node &) { return Initializer{}; }
+ virtual Initializer generate(const graph::operation::Permute::Node &) { return Initializer{}; }
+ virtual Initializer generate(const graph::operation::Add::Node &) { return Initializer{}; }
};
} // namespace backend
// backend
auto backend = node.lower_info()->backend();
+ // Generate Initializers
+ auto init_gen = backend->initializer_gen();
+ _builder.addInitializer(init_gen->generate(node));
+
// Generate Stage
auto stage_gen = backend->stage_gen();
_builder.addStage(stage_gen->generate(node));
// backend
auto backend = node.lower_info()->backend();
+ // Generate Initializers
+ auto init_gen = backend->initializer_gen();
+ _builder.addInitializer(init_gen->generate(node));
+
// Generate Stage
auto stage_gen = backend->stage_gen();
_builder.addStage(stage_gen->generate(node));
// backend
auto backend = node.lower_info()->backend();
+ // Generate Initializers
+ auto init_gen = backend->initializer_gen();
+ _builder.addInitializer(init_gen->generate(node));
+
// Generate Stage
auto stage_gen = backend->stage_gen();
_builder.addStage(stage_gen->generate(node));
// backend
auto backend = node.lower_info()->backend();
+ // Generate Initializers
+ auto init_gen = backend->initializer_gen();
+ _builder.addInitializer(init_gen->generate(node));
+
// Generate Stage
auto stage_gen = backend->stage_gen();
_builder.addStage(stage_gen->generate(node));
// backend
auto backend = node.lower_info()->backend();
+ // Generate Initializers
+ auto init_gen = backend->initializer_gen();
+ _builder.addInitializer(init_gen->generate(node));
+
// Generate Stage
auto stage_gen = backend->stage_gen();
_builder.addStage(stage_gen->generate(node));
}
-void Planner::visit(const graph::operation::NOP::Node & /* node */)
+void Planner::visit(const graph::operation::NOP::Node &node)
{
- // DO NOTHING
- // TODO : It's just for graph manipulation test now, it should be added tensor copy stage later.
+ // backend
+ auto backend = node.lower_info()->backend();
+
+ // Generate Initializers
+ auto init_gen = backend->initializer_gen();
+ _builder.addInitializer(init_gen->generate(node));
+
+ // Generate Stage
+ auto stage_gen = backend->stage_gen();
+ _builder.addStage(stage_gen->generate(node));
}
void Planner::visit(const graph::operation::Permute::Node &node)
// backend
auto backend = node.lower_info()->backend();
+ // Generate Initializers
+ auto init_gen = backend->initializer_gen();
+ _builder.addInitializer(init_gen->generate(node));
+
// Generate Stage
auto stage_gen = backend->stage_gen();
_builder.addStage(stage_gen->generate(node));
// backend
auto backend = node.lower_info()->backend();
+ // Generate Initializers
+ auto init_gen = backend->initializer_gen();
+ _builder.addInitializer(init_gen->generate(node));
+
// Generate Stage
auto stage_gen = backend->stage_gen();
_builder.addStage(stage_gen->generate(node));