// DO NOTHING
}
+void KernelGenerator::visit(const model::Subgraph &subgraph)
+{
+ for (const auto &e : subgraph.operations())
+ {
+ const auto &node = *(e.node);
+ //_tensor_builder->preVisit(node);
+ node.accept(*this);
+ //_tensor_builder->postVisit(node);
+ }
+}
+
void KernelGenerator::visit(const model::operation::CastNode &node)
{
const auto ofm_index{node.getOutputs().at(0)};
std::shared_ptr<ITensorBuilder> tensor_builder() override { return _tensor_builder; }
+ void visit(const model::Subgraph &) override;
void visit(const model::operation::Conv2DNode &) override;
void visit(const model::operation::DepthwiseConv2DNode &) override;
void visit(const model::operation::MaxPool2DNode &) override;
// DO NOTHING
}
+void KernelGenerator::visit(const model::Subgraph &subgraph)
+{
+ for (const auto &e : subgraph.operations())
+ {
+ const auto &node = *(e.node);
+ //_tensor_builder->preVisit(node);
+ node.accept(*this);
+ //_tensor_builder->postVisit(node);
+ }
+}
+
void KernelGenerator::visit(const model::operation::Conv2DNode &node)
{
using model::operation::Conv2DNode;
std::shared_ptr<ITensorBuilder> tensor_builder() override { return _tensor_builder; }
+ void visit(const model::Subgraph &) override;
void visit(const model::operation::Conv2DNode &) override;
void visit(const model::operation::DepthwiseConv2DNode &) override;
void visit(const model::operation::MaxPool2DNode &) override;
namespace backend
{
-class IKernelGenerator : model::OperationVisitor
+class IKernelGenerator : public model::OperationVisitor
{
public:
virtual ~IKernelGenerator() = default;