import onnx
from onnx import helper
from onnx import TensorProto
graph = helper.make_graph(nodes=[], name='Scatter_Graph', inputs=[], outputs=[])
data = helper.make_tensor_value_info('data', TensorProto.INT32, [3,3])
indices = helper.make_tensor_value_info('indices', TensorProto.INT32, [2,3])
updates = helper.make_tensor_value_info('updates', TensorProto.INT32, [2,3])
axis = 0
graph.input.extend([data, indices, updates])
scatter_node = helper.make_node('ScatterElements', ['data', 'indices', 'updates'], ['output'], name='Scatter_Node', axis=axis)
graph.node.extend([scatter_node])
output = helper.make_tensor_value_info('output', TensorProto.INT32, [3,3])
graph.output.extend([output])
model = helper.make_model(graph, producer_name='ONNX_Scatter_Elements_Demo')
onnx.save(model, 'scatter_elements_model3.onnx')