Невозможно преобразовать модель caffe2 в формат onnx или тензор потока - PullRequest
0 голосов
/ 07 мая 2019

Мы пытаемся преобразовать модель кафе в формат onnx.Изначально мы преобразовали модель caffe в caffe2 с помощью инструмента перевода CaffetoCaffe2 .Для этого мы установили caffe и caffe2 (conda) с python 2.7.После успешного преобразования из caffe в caffe2 мы получили три файла, а именно.Предсказание_net.pb, Предсказание_нет.pbtxt и inet_net.pb.Затем мы попытались преобразовать эти файлы в формат «onnx» с помощью конвертера Caffe2toONNX . На этой странице мы использовали команду оболочки и скрипт python для преобразования моделей в формат onnx.Но мы получили следующую ошибку: -

RuntimeError: [принудительное завершение в net.cc:69].op Concat: источник для маски ввода неизвестен для net Context-Encoder, оператор ввода: "данные" ввод: "маска" вывод: "data_all" вывод: "_data_all_dims" тип: "Concat" arg {name: "order" s:"NCHW"}

Кажется, что модель не может правильно определить свои ДВУ входов. Как мы можем правильно обработать (или указать) два входа (или несколько) и правильно преобразовать модель caffe2 в формат onnx?

Вот скрипт конвертации: -

import onnx
import caffe2.python.onnx.frontend
from caffe2.proto import caffe2_pb2

# We need to provide type and shape of the model inputs, 
# see above Note section for explanation
data_type = onnx.TensorProto.FLOAT
data_shape1 = (1, 3, 512, 512)
data_shape2 = (1, 1, 512, 512)
value_info = {
    'data': (data_type, data_shape1),
    'mask': (data_type, data_shape2),
}

predict_net = caffe2_pb2.NetDef()
with open('predict_net.pb', 'rb') as f:
    predict_net.ParseFromString(f.read())

init_net = caffe2_pb2.NetDef()
with open('init_net.pb', 'rb') as f:
    init_net.ParseFromString(f.read())

onnx_model = caffe2.python.onnx.frontend.caffe2_net_to_onnx_model(
    predict_net,
    init_net,
    value_info,
)

#onnx.checker.check_model(onnx_model)
onnx.save(onnx_model, 'model.onnx')

Вот файл pbtxt caffe2 ссылки: вести caffe_to_tf tool;но обнаружена другая ошибка: -

Ошибка обнаружена: несколько верхних узлов не поддерживаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...