Как пропустить слой в модели Keras/Openvino

# #keras #tensorflow2.0 #openvino

Вопрос:

Я пытаюсь пропустить ненужные операции транспонирования, которые были добавлены ранее из-за процесса преобразования из PyTorch в Tensorflow. Есть какие-нибудь предложения?

Модель имеет 2 выхода, и я пытаюсь удалить операции транспонирования из ветви выходов. И операция транспонирования добавляется в процессе преобразования из OpenVINO в Tensorflow

введите описание изображения здесь

Ответ №1:

Смог добиться этого с помощью ONNX, Netron и библиотеки python sclblonnx.

Я использовал библиотеку python для удаления и перенаправления выходных данных узла перед транспонированием. И использовал Netron для отображения графика ONNX и знал, как называются эти выходные данные:

введите описание изображения здесь

Свернутый пример:

 import sclblonnx as so
g = so.graph_from_file('/path/to/onnx/file')
g = so.delete_node(g, "Transpose_178")
idx = -1
for i,elem in enumerate(g.node):
  if elem.name == "Softmax_179":
    idx = i

g.node[i].input[0] = '570'
so.graph_to_file(g, '/home/cw/Openvino/ERFNet/ERF_lane_so.onnx' )