Ошибки при преобразовании PyTorch Unet ("тирамису") в coreml через onnx

Я пытаюсь конвертировать Pytorch "тирамису" UNet (из: https://github.com/bfortuner/pytorch_tiramisu) в coreml через onnx, и я получаю эту ошибку в onnx-coreml _operators.py:

TypeError: Error while converting op of type: Concat. Error message: Unsupported axis 1 in input of shape

Любые мысли о том, как я мог бы обойти это? Файл слоев находится здесь, для справки: https://github.com/bfortuner/pytorch_tiramisu/blob/master/models/layers.py

ОБНОВЛЕНИЕ 1: Итак, углубляясь в это, я заметил, что некоторые из моих graph.shape_dicts содержат ключи без значений / форм: например, '422': (1, 324, 2, 4), '423': (1, 324, 2, 4), '424': (1, 12, 2, 4), '425': (1, 48, 2, 4), '426': (), '427': (), '428': (), '429': (), '430': () [...]

Я действительно не уверен, как это происходит, или это моя проблема, моя оригинальная модель, onnx или onnx-coreml. Но с учетом этого я изменил if node.inputs[0] in graph.shape_dict: в if len(graph.shape_dict[node.inputs[0]]) != 0:) в _operators.py, Это позволяет завершить преобразование, хотя я не буду знать, пока не попробую, действительно ли модель преобразована правильно...

ОБНОВЛЕНИЕ 2: Хорошо, итоговое mlmodel не проходит проверку в Xcode с validator error: Layer '427' of type 320 has 1 inputs but expects at least 2. Я предполагаю, что это является следствием (упрощенно) игнорирования пустых значений shape_dict, которые я нашел в "ОБНОВЛЕНИИ 1" выше. Но явно модель неверна. Может ли ошибка возникать в onnx?

0 ответов

Другие вопросы по тегам