Rani
Rani

Reputation: 503

Change input size of ONNX model

I need to change the input size of an ONNX model from [1024,2048,3] to [1,1024,2048,3].

For this, I've tried using update_inputs_outputs_dims by ONNX

import onnx
from onnx.tools import update_model_dims

model = onnx.load("./0818_pspnet_1.0_713_resnet_v1/pspnet_citysc.onnx")
updated_model = update_model_dims.update_inputs_outputs_dims(model, {"inputs:0":[1,1024,2048,3]}, {"predictions:0":[1, 1025, 2049, 1]})
onnx.save(updated_model, 'pspnet_citysc_upd.onnx')

However, this is the error I end up with.

ValueError: Unable to set dimension value to 1 for axis 0 of inputs:0. Contradicts existing dimension value 1024.

The ONNX model is exported from a Tensorflow frozen graph of PSPNet. If the above approach does not work, would I need to modify the frozen graph?

Any help is greatly appreciated.

Upvotes: 4

Views: 7603

Answers (1)

AcidBurn
AcidBurn

Reputation: 357

You can use the dynamic shape fixed tool from onnxruntime

python -m onnxruntime.tools.make_dynamic_shape_fixed --dim_param batch --dim_value 1 model.onnx model.fixed.onnx

Upvotes: 2

Related Questions