import onnx
import onnx.helper as helper
import numpy as np
from onnx import TensorProto

# Inputs & output
input0 = helper.make_tensor_value_info("INPUT0", TensorProto.INT32, [None, 16])
input1 = helper.make_tensor_value_info("INPUT1", TensorProto.INT32, [None, 16])
output0 = helper.make_tensor_value_info("OUTPUT0", TensorProto.INT32, [None, 16])

# Add node
add_node = helper.make_node(
    "Add",
    inputs=["INPUT0", "INPUT1"],
    outputs=["OUTPUT0"]
)

# Build graph
graph = helper.make_graph(
    [add_node],
    "AddGraph",
    [input0, input1],
    [output0]
)

# Build model
model = helper.make_model(graph, producer_name="onnx-add-cpp-example")
onnx.checker.check_model(model)
onnx.save(model, "add.onnx")

print("Saved ONNX model: add.onnx")
