The OP macro forces all operation to be implemented.
But each operation is meaningful only when the operation is actually implemented.
If backend does not have the operation, neurun can use a different backend.
Remove dummy definition and add default throw function
Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
});
}
-void StageGenerator::visit(const model::operation::PermuteNode & /* node */)
-{
- throw "Unsupported";
-}
-
void StageGenerator::visit(const model::operation::AddNode &node)
{
const auto output_index{node.getOutputs().at(0)};
});
}
-void StageGenerator::visit(const model::operation::LogisticNode &)
-{
- throw std::runtime_error("LogisticNode for acl_cl is not implemented yet");
-}
-
} // namespace acl_cl
} // namespace backend
} // namespace neurun
virtual std::shared_ptr<ITensorBuilder> tensor_builder() override { return _tensor_builder; }
-#define OP(InternalName, IsNnApi, NnApiName) \
- virtual void visit(const model::operation::InternalName &) override;
-#include "model/operation/Op.lst"
-#undef OP
+ virtual void visit(const model::operation::Conv2DNode &) override;
+ virtual void visit(const model::operation::DepthwiseConv2DNode &) override;
+ virtual void visit(const model::operation::MaxPool2DNode &) override;
+ virtual void visit(const model::operation::AvgPool2DNode &) override;
+ virtual void visit(const model::operation::ConcatNode &) override;
+ virtual void visit(const model::operation::FullyConnectedNode &) override;
+ virtual void visit(const model::operation::MulNode &) override;
+ virtual void visit(const model::operation::ReshapeNode &) override;
+ virtual void visit(const model::operation::TanhNode &) override;
+ virtual void visit(const model::operation::SoftmaxNode &) override;
+ virtual void visit(const model::operation::StridedSliceNode &) override;
+ virtual void visit(const model::operation::AddNode &) override;
+ virtual void visit(const model::operation::SubNode &) override;
private:
const neurun::model::operand::Set &_ctx;
});
}
-void StageGenerator::visit(const model::operation::StridedSliceNode &)
-{
- throw std::runtime_error("StridedSliceNode for cpu is not implemented yet.");
-}
-
-void StageGenerator::visit(const model::operation::TanhNode &) { throw std::runtime_error("NYI"); }
-
-void StageGenerator::visit(const model::operation::LogisticNode &)
-{
- throw std::runtime_error("LogisticNode for cpu is not implemented yet");
-}
-
void StageGenerator::visit(const model::operation::PermuteNode &node)
{
const auto output_index{node.getOutputs().at(0)};
});
}
-void StageGenerator::visit(const model::operation::AddNode &) { throw std::runtime_error("NYI"); }
-
-void StageGenerator::visit(const model::operation::SubNode &) { throw std::runtime_error("NYI"); }
-
} // namespace neurun
} // namespace backend
} // namespace cpu
virtual std::shared_ptr<ITensorBuilder> tensor_builder() override { return _tensor_builder; }
-#define OP(InternalName, IsNnApi, NnApiName) \
- virtual void visit(const model::operation::InternalName &) override;
-#include "model/operation/Op.lst"
-#undef OP
+ virtual void visit(const model::operation::Conv2DNode &);
+ virtual void visit(const model::operation::DepthwiseConv2DNode &);
+ virtual void visit(const model::operation::MaxPool2DNode &);
+ virtual void visit(const model::operation::AvgPool2DNode &);
+ virtual void visit(const model::operation::ConcatNode &);
+ virtual void visit(const model::operation::FullyConnectedNode &);
+ virtual void visit(const model::operation::MulNode &);
+ virtual void visit(const model::operation::ReshapeNode &);
+ virtual void visit(const model::operation::SoftmaxNode &);
+ virtual void visit(const model::operation::PermuteNode &);
private:
const neurun::model::operand::Set &_ctx;
virtual std::shared_ptr<ITensorBuilder> tensor_builder() = 0;
protected:
-#define OP(InternalName, IsNnApi, NnApiName) \
- virtual void visit(const model::operation::InternalName &) override {}
+#define OP(InternalName, IsNnApi, NnApiName) \
+ virtual void visit(const model::operation::InternalName &) override \
+ { \
+ throw std::runtime_error("NYI"); \
+ }
#include "model/operation/Op.lst"
#undef OP