首页 > 解决方案 > 使用 TF 模型在 OpenVino 中最后定义通道的位置

问题描述

我遵循的步骤:

python3 mo_tf.py --saved_model_dir $PATH_TO_SAVED_MODEL --output_dir $OUTPUT_PATH --input name_input_layer_1,name_input_layer_2 --input_shape [1,30,180,320,3],[1,30,180,320,3] --model_name model1
ie = IECore()
net = ie.read_network(model='OUTPUT_PATH/model1.xml', weights='OUTPUT_PATH/model1.bin')
exec_net = ie.load_network(network=net, device_name="CPU")
exec_net.infer({ "name_input_layer_1": a_sample, "name_input_layer_2": b_sample })

当代码到达推断行时,它会引发以下错误:

ValueError: could not broadcast input array from shape (1,30,180,320,3) into shape (1,3,30,180,320)

当我运行优化器时,我尝试给出输入的形状,但它不起作用。我还尝试添加一个批号 insted,但它也不起作用。我知道 tensorflow 默认情况下最后使用通道,但是由于某种原因,当我进行预测 openvino 时仍然会更改顺序。我错过了什么,任何帮助将不胜感激。

标签: pythontensorflowopenvino

解决方案


看起来程序需要形状 (1, 3, 30, 180, 320),在您的第一个命令中,您已将输入形状指定为 (1, 30, 180, 320, 3)。


推荐阅读