How to adjust a Neural Networks metadata: Difference between revisions

From Tygron Preview Support Wiki
Jump to navigation Jump to search
Line 6: Line 6:
<pre>pip install onnx </pre>
<pre>pip install onnx </pre>


Add a metadata key (without duplication):
To add or edit a metadata key (without duplication), you can use the following code:
<pre>
<pre>
def addMeta(onnx_model, key, value):
def addMeta(onnx_model, key, value):
Line 20: Line 20:
</pre>
</pre>


To adjust an existing ONNX file, you first have to load the model. Next, pass the model to the method, with additional key and value arguments.
<pre>
<pre>
import onnx
import onnx
Line 25: Line 26:
addMeta(onnxModel, "key", "value")
addMeta(onnxModel, "key", "value")
</pre>
</pre>
Save the onnx model to file:  
 
Lastly, save the onnx model again to a (new) file:  
<pre>
<pre>
with open(onnxFilePath, "wb") as f:
with open(onnxFilePath, "wb") as f:
     f.write(onnx_model.SerializeToString())
     f.write(onnx_model.SerializeToString())
</pre>
</pre>
Producer, version and description are set using these functions
 
Producer, version and description are set using these functions, as these are not stored in the meta data.
<pre>
<pre>
def setProducer(onnxModel, producer):
def setProducer(onnxModel, producer):

Revision as of 13:40, 19 December 2024

Metadata of a Neural Network stored in the ONNX file format can be adjusted using the python code found below.

Prerequisites

An installed python environment is required to execute the code. Additionally, install the onnx library using PIP:

pip install onnx 

To add or edit a metadata key (without duplication), you can use the following code:

def addMeta(onnx_model, key, value):
    
    for entry in onnx_model.metadata_props:
        if entry.key == key:
            entry.value = value
            return

    meta = onnx_model.metadata_props.add()
    meta.key = key
    meta.value = value

To adjust an existing ONNX file, you first have to load the model. Next, pass the model to the method, with additional key and value arguments.

import onnx
onnx_model = onnx.load("path/to/onnx/file")
addMeta(onnxModel, "key", "value")

Lastly, save the onnx model again to a (new) file:

with open(onnxFilePath, "wb") as f:
    f.write(onnx_model.SerializeToString())

Producer, version and description are set using these functions, as these are not stored in the meta data.

def setProducer(onnxModel, producer):
    onnxModel.producer_name = producer

def setModelVersion(onnxModel, modelVersion):
    onnxModel.model_version = modelVersion

def setDocString(onnxModel, description):
    onnxModel.doc_string = description