where alpha, beta are float constants.
1. Include headers:
-@snippet onnx_custom_op/main.cpp onnx_custom_op:headers
+@snippet onnx_custom_op/onnx_custom_op.cpp onnx_custom_op:headers
2. Register the CustomRelu operator in the ONNX importer:
-@snippet onnx_custom_op/main.cpp onnx_custom_op:register_operator
+@snippet onnx_custom_op/onnx_custom_op.cpp onnx_custom_op:register_operator
The `register_operator` function takes four arguments: op_type, opset version, domain, and a function object.
The function object is a user-defined function that takes `ngraph::onnx_import::Node` as an input and based on that, returns a graph with nGraph operations.
The `ngraph::onnx_import::Node` class represents a node in ONNX model. It provides functions to fetch input node(s) (`get_ng_inputs`), fetch attribute value (`get_attribute_value`) and many more (please refer to `onnx_import/core/node.hpp` for full class declaration).
Re-registering ONNX operators within the same process is supported. During registration of the existing operator, a warning is printed.
The example below demonstrates an examplary model that requires previously created 'CustomRelu' operator:
-@snippet onnx_custom_op/main.cpp onnx_custom_op:model
+@snippet onnx_custom_op/onnx_custom_op.cpp onnx_custom_op:model
For a reference on how to create a graph with nGraph operations, visit [nGraph tutorial](../nGraphTutorial.md).
For a complete list of predefined nGraph operators, visit [available operations sets](../../ops/opset.md).
If operator is no longer needed, it can be unregistered by calling `unregister_operator`. The function takes three arguments `op_type`, `version`, and `domain`.
-@snippet onnx_custom_op/main.cpp onnx_custom_op:unregister_operator
+@snippet onnx_custom_op/onnx_custom_op.cpp onnx_custom_op:unregister_operator
## Registering custom ONNX operator based on custom nGraph operations