无法获得与openvino的pytorch模型相同的输出

时间:2019-08-14 14:13:56

标签: openvino

在尝试使用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})

这仍然会给我返回相同的输出!因此,这似乎表明我的输入被忽略了或类似的东西?

1 个答案:

答案 0 :(得分:2)

您是否可以尝试不使用--disable_resnet_optimization --disable_fusing --disable_gfusing 保持优化。