Unable to convert onnx to tensorflow - help
ushasai opened this issue · 0 comments
Hi,
Kindly help me with the following issue:
Code used to convert to onnx from .pt:
def convert_to_onnx(model, input_size=(1, 3, 128, 128), onnx_model_path="model.onnx", device='cuda'):
dummy_input = torch.randn(*input_size).to(device) # Move the dummy input to the specified device
# Check if the model is wrapped in DataParallel and unwrap it
if isinstance(model, torch.nn.DataParallel):
model = model.module
model = model.to(device) # Ensure the model is on the correct device
# Export the model to ONNX format
torch.onnx.export(model, dummy_input, onnx_model_path, export_params=True,
opset_version=12, input_names=['input'], output_names=['output'])
print(f"ONNX model export")
onnx_model_path = 'model.onnx'
tf_model_path = 'model_tf'
tflite_model_path = 'model.tflite'
onnx_model = onnx.load(onnx_model_path)
tf_rep = prepare(onnx_model)
tf_rep.export_graph(tf_model_path)
converter = tf.lite.TFLiteConverter.from_saved_model(tf_model_path)
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS]
tflite_model = converter.convert()
with open(tflite_model_path, 'wb') as f:
f.write(tflite_model)
print("TFLite model saved at:", tflite_model_path)
But I am getting this issue: ValueError: Dimensions must be equal, but are 8 and 7 for '{{node onnx_tf_prefix_/level5_0/eesp/Add}} = AddV2[T=DT_FLOAT](transpose_139, transpose_136)' with input shapes: [1,64,8,8], [1,64,7,7].
To Reproduce
I am using the latest onnx from pip I also tried install from the current repo
Please help me fix this issue. I have been struggling with this for a while. Atleast please let me know if its due to my architecture to the compatibility.
Python, ONNX, ONNX-TF, Tensorflow version
This section can be obtained by running get_version.py
from util folder.
- Python version: 3.10
- ONNX version: Latest from pip
- ONNX-TF version:Latest from pip
- Tensorflow version: 2.10.0