Tensorflow 试图从冻结的TF模型中获取openVino IR
我有一个给定的inceptionV2模型,我想使用NCS2在rPi上工作。例子很好用。现在,我得到的模型是基于ssd_inceptionv2演示的,我知道它是有效的,因为我已经能够将该演示的冻结pb转换为IR bin和xml文件,并成功地在pi上运行它们。但是,当我尝试将给定模型转换为IR时,它失败了。更具体地说,它以不同的方式失败,这取决于我如何尝试转换它 给定的模型有一个冻结的.pb文件、检查点文件和一个.pbtxt文件。转换.pb文件我使用的命令是:Tensorflow 试图从冻结的TF模型中获取openVino IR,tensorflow,raspberry-pi,intel,openvino,Tensorflow,Raspberry Pi,Intel,Openvino,我有一个给定的inceptionV2模型,我想使用NCS2在rPi上工作。例子很好用。现在,我得到的模型是基于ssd_inceptionv2演示的,我知道它是有效的,因为我已经能够将该演示的冻结pb转换为IR bin和xml文件,并成功地在pi上运行它们。但是,当我尝试将给定模型转换为IR时,它失败了。更具体地说,它以不同的方式失败,这取决于我如何尝试转换它 给定的模型有一个冻结的.pb文件、检查点文件和一个.pbtxt文件。转换.pb文件我使用的命令是: python3 /opt/intel/
python3 /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/mo_tf.py
--input_model frozengraph.pb
--tensorflow_use_custom_operations_config /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/extensions/front/tf/ssd_v2_support.json
--tensorflow_object_detection_api_pipeline "PATH"/pipeline.config
--reverse_input_channels
--data_type FP16
这就产生了输入形状错误,我用--input_shape[1299299,3]
进行了补救,但它只会导致错误:
无法推断节点的形状或值
“后处理器/BatchMultiClassNonMaxSuppression/MultiClassNonMaxSuppression/SortByField/TopKV2”
因此,我尝试重新冻结模型并在graph.pbtxt上运行转换。对于这两种方法,它都会抛出错误,因为节点数分别为0和1
知道我在这里做错了什么吗?假设您能够使用冻结的图形检测对象,尝试一次,将命令行参数更改为tensorflow\u object\u detection\u api\u pipeline\u config您使用的是哪个pipeline.config文件?如果您使用的是与自定义模型的冻结图形一起生成的pipeline.config文件,则应该能够创建IR文件。假设您能够使用冻结图形检测对象,尝试一次,将命令行参数更改为tensorflow\u object\u detection\u api\u pipeline\u config您正在使用哪个pipeline.config文件?如果您使用的是与自定义模型的冻结图一起生成的pipeline.config文件,则应该能够创建IR文件。Tensorflow模型可能有点棘手,尤其是在模型动物园中修改那些已经相当复杂的模型时。对于您的场景,我想提几件事: 在“使用TensorFlow*-特定转换参数”中,您会发现 使用TensorFlow*生成的模型通常没有完全定义的形状(在某些维度中包含-1)。必须使用命令行参数--input_shape或-b为输入传递显式形状,以仅覆盖批处理维度。如果形状已完全定义,则无需指定-b或--input_形状选项 这方面的一些示例包括,以及“关于模型优化器内部的高级主题”一节中的更多示例 作为记录,我能够从model zoo转换一个微调的更快的\u rcnn\u inception\u v2,而无需指定
--input\u shape
参数,因此它实际上取决于您的模型
此外,这可能是一个打字错误或版本问题,但--tensorflow\u object\u detection\u api\u pipeline
参数是正式的--tensorflow\u object\u detection\u api\u pipeline\u config
(如@Bhargavi所述)
最后,调试转换命令的一个好方法是使用
--log_level debug
参数查看完整的输出。Tensorflow模型可能有点棘手,尤其是当您修改模型动物园中已经相当复杂的模型时。对于您的场景,我想提几件事:
在“使用TensorFlow*-特定转换参数”中,您会发现
使用TensorFlow*生成的模型通常没有完全定义的形状(在某些维度中包含-1)。必须使用命令行参数--input_shape或-b为输入传递显式形状,以仅覆盖批处理维度。如果形状已完全定义,则无需指定-b或--input_形状选项
这方面的一些示例包括,以及“关于模型优化器内部的高级主题”一节中的更多示例
作为记录,我能够从model zoo转换一个微调的更快的\u rcnn\u inception\u v2,而无需指定--input\u shape
参数,因此它实际上取决于您的模型
此外,这可能是一个打字错误或版本问题,但--tensorflow\u object\u detection\u api\u pipeline
参数是正式的--tensorflow\u object\u detection\u api\u pipeline\u config
(如@Bhargavi所述)
最后,调试转换命令的一个好方法是使用
--log\u level debug
参数查看完整的输出。请参阅下面的链接
您的命令类似于:
<INSTALL_DIR>/deployment_tools/model_optimizer/mo_tf.py --input_model=/tmp/ssd_inception_v2_coco_2018_01_28/frozen_inference_graph.pb --tensorflow_use_custom_operations_config <INSTALL_DIR>/deployment_tools/model_optimizer/extensions/front/tf/ssd_v2_support.json --tensorflow_object_detection_api_pipeline_config /tmp/ssd_inception_v2_coco_2018_01_28/pipeline.config --reverse_input_channels
/deployment\u tools/model\u optimizer/mo\u tf.py--input\u model=/tmp/ssd\u inception\u v2\u coco\u 2018\u 01\u 28/freezed\u interference\u graph.pb--tensorflow\u use\u custom\u operations\u config/deployment\u tools/model\u optimizer/extensions/front/tf/ssd\u v2\u support.json--\u tensorflow\u对象检测\u api\u pipeline\u config/tmp/ssd\u inception\u v2\u coco\u 2018\u管道配置--反向输入通道
请仔细阅读文档中自定义输入形状中的部分。请添加一个--日志级调试以查看MO故障的更多详细信息
希望这有帮助。请参考下面的链接 您的命令类似于:
<INSTALL_DIR>/deployment_tools/model_optimizer/mo_tf.py --input_model=/tmp/ssd_inception_v2_coco_2018_01_28/frozen_inference_graph.pb --tensorflow_use_custom_operations_config <INSTALL_DIR>/deployment_tools/model_optimizer/extensions/front/tf/ssd_v2_support.json --tensorflow_object_detection_api_pipeline_config /tmp/ssd_inception_v2_coco_2018_01_28/pipeline.config --reverse_input_channels
/deployment\u tools/model\u optimizer/mo\u tf.py--input\u model=/tmp/ssd\u inception\u v2\u coco\u 2018\u 01\u 28/freezed\u interference\u graph.pb--tensorflow\u use\u custom\u operations\u config/deployment\u tools/model\u optimizer/extensions/front/tf/ssd\u v2\u support.json--\u tensorflow\u对象检测\u api\u pipeline\u config/tmp/ssd\u inception\u v2\u coco\u 2018\u管道配置--反向输入通道
请仔细阅读文档中自定义输入形状中的部分。请添加一个--日志级调试以查看MO故障的更多详细信息 希望这有帮助