yobx.builder.light – Graph#
- class yobx.builder.light.ProtoType(*values)[source]#
The same code can be used to output a
onnx.GraphProtoor aonnx.ModelProto.
- class yobx.builder.light.OnnxGraph(opset: int | None = None, opsets: Dict[str, int] | None = None, ir_version: int | None = None, proto_type: ProtoType = ProtoType.MODEL)[source]#
Accumulates nodes, inputs, outputs and initializers needed to build an ONNX graph using a fluent API.
- Parameters:
opset – main opset version (defaults to
onnx_opset_version() - 1)opsets – additional opsets as
{domain: version}ir_version – ONNX IR version; only applied to ModelProto outputs
proto_type –
ProtoType-MODEL(default) orGRAPH
Simple example:
from yobx.builder.light import start onx = start().vin("X").Neg().rename("Y").vout().to_onnx()
- cst(value: ndarray, name: str | None = None) Var[source]#
Adds a constant initializer and returns it as a
Var.- Parameters:
value – constant numpy array
name – optional name
- Returns:
- get_opset(domain: str, exc: bool = True) int[source]#
Returns the opset version for domain.
- Parameters:
domain – domain name
exc – raise an
AssertionErrorif the domain is not registered
- Returns:
version or
0when exc isFalseand the domain is unknown
- get_var(name: str) Var[source]#
Returns the
Varcorresponding to name.- Parameters:
name – variable name
- Returns:
- has_opset(domain: str) int[source]#
Returns the opset version for domain, or
0if not registered.- Parameters:
domain – domain name
- Returns:
opset version, or
0if the domain is unknown
- make_constant(value: ndarray, name: str | None = None) TensorProto[source]#
Adds a constant initializer.
- Parameters:
value – numpy array to store as initializer
name – optional name (auto-generated when
None)
- Returns:
- make_input(name: str, elem_type: int = 1, shape: Any | None = None) ValueInfoProto[source]#
Registers an input tensor and returns its
onnx.ValueInfoProto.- Parameters:
name – input name (must be unique)
elem_type – ONNX element type integer
shape – optional shape (list of ints / strings / None for dynamic dims)
- Returns:
- make_node(op_type: str, *inputs: Any, domain: str = '', n_outputs: int = 1, output_names: List[str] | None = None, **kwargs: Any) NodeProto[source]#
Creates and registers an ONNX node.
- Parameters:
op_type – operator type name
inputs – input
Varinstances or numpy arraysdomain – operator domain (default
""for standard ops)n_outputs – number of output tensors
output_names – explicit output names (auto-generated when
None)kwargs – operator attributes
- Returns:
- make_output(name: str, elem_type: int = 1, shape: Any | None = None) ValueInfoProto[source]#
Registers a graph output and returns its
onnx.ValueInfoProto.- Parameters:
name – output name (must already exist as a node output or input)
elem_type – ONNX element type integer
shape – optional shape
- Returns:
- rename(old_name: str, new_name: str) None[source]#
Records a rename from old_name to new_name. The rename is applied lazily when building the final proto.
- Parameters:
old_name – existing name
new_name – desired new name
- set_opset(domain: str, version: int = 1) None[source]#
Registers domain with the given opset version.
If the domain is already registered with the same version this call is a no-op. A version mismatch raises an
AssertionError.- Parameters:
domain – domain name
version – opset version (default:
1)
- to_onnx() ModelProto[source]#
Builds and returns the ONNX proto.
- Returns:
onnx.GraphProtowhenproto_typeisGRAPH,onnx.ModelProtootherwise
- true_name(name: str) str[source]#
Resolves a (possibly renamed) name to its current name.
- Parameters:
name – original name
- Returns:
current name after applying all renames