4

我在尝试使用 OpenVino 时遇到了一个奇怪的问题。

我已将我的 pytorch 模型导出到 onnx,然后使用以下命令将其导入 OpenVino:

python /opt/intel/openvino/deployment_tools/model_optimizer/mo.py --input_model ~/Downloads/unet2d.onnx --disable_resnet_optimization --disable_fusing --disable_gfusing --data_type=FP32

所以对于测试用例,我禁用了优化。

现在,使用示例 python 应用程序,我使用模型运行推理,如下所示:

from openvino.inference_engine import IENetwork, IECore
import numpy as np

model_xml = path.expanduser('model.xml')
model_bin = path.expanduser('model.bin')
ie = IECore()
net = IENetwork(model=model_xml, weights=model_bin)
input_blob = next(iter(net.inputs))
out_blob = next(iter(net.outputs))
net.batch_size = 1

exec_net = ie.load_network(network=net, device_name='CPU')
np.random.seed(0)
x = np.random.randn(1, 2, 256, 256) # expected input shape
res = exec_net.infer(inputs={input_blob: x})
res = res[out_blob]

问题是这似乎输出的东西与我的 onnx 或 pytorch 模型完全不同。

此外,我意识到我什至不必传递输入,所以如果我执行以下操作:

x = None
res = exec_net.infer(inputs={input_blob: x})

这仍然返回相同的输出!所以这似乎表明我的输入以某种方式被忽略或类似的东西?

4

1 回答 1

2

您可以尝试不使用 --disable_resnet_optimization --disable_fusing --disable_gfusing 并保留优化。

于 2019-08-23T06:09:05.573 回答