首页 > 解决方案 > 如何在 Keras/Openvino 模型中跳过一层

问题描述

由于从 PyTorch 到 Tensorflow 的转换过程,我正在尝试跳过之前添加的不必要的转置操作。有什么建议么?

该模型有 2 个输出,我正在尝试从输出分支中删除转置操作。并且在从OpenVino到Tensorflow的转换过程中加入了Transpose操作

在此处输入图像描述

标签: kerastensorflow2.0openvino

解决方案


能够使用 ONNX、Netron 和 sclblonnx python 库来实现它。

我使用 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' )

推荐阅读