0

我使用将 onnx 模型转换为 IR

python3 mo_onnx.py --input_model SSD_nms.onnx --input inputs,top_k_per_class,nms_iou,nms_score --input_shape [1,3,224,224],[1],[1],[1]

这一步工作正常,但是当我尝试加载网络时,它给了我以下错误。

ie = IECore() 
net = ie.read_network(model=model_path, weights=weights_path)
print (net.layers)

File "ie_api.pyx", line 1170, in openvino.inference_engine.ie_api.IENetwork.layers.__get__ ValueError: get_shape was called on a descriptor::Tensor with dynamic shape

我能够成功运行相同的模型减去最后一个 NMS 层。不知道为什么这会失败。在 netron 上查看 IR xml 文件并没有显示任何内容。

导致麻烦的整个层描述:

<layer id="351" name="selected_indices" type="NonMaxSuppression" version="opset1">
    <data box_encoding="center" sort_result_descending="0"/>
    <input>
        <port id="0">
            <dim>1</dim>
            <dim>10000</dim>
            <dim>4</dim>
        </port>
        <port id="1">
            <dim>1</dim>
            <dim>2</dim>
            <dim>10000</dim>
        </port>
        <port id="2"/>
        <port id="3"/>
        <port id="4"/>
    </input>
    <output>
        <port id="5" precision="I64">
            <dim>10000</dim>
            <dim>3</dim>
        </port>
    </output>
</layer>

从 IR 中移除输出层会使事情正常工作。

4

0 回答 0