将模型优化器用于tensorflow苗条模型

时间:2019-01-03 08:28:33

标签: tensorflow tf-slim tensorflow-slim inference-engine openvino

我的目标是使用Intel OpenVINO优化器推断张量流苗条模型。使用open vino docsslides进行推理,并使用tf slim docs进行训练。

这是一个多类分类问题。我从头开始训练了tf slim mobilnet_v2模型(使用sript train_image_classifier.py)。从(使用脚本eval_image_classifier.py)开始

评估/准确度[0.8017]评估/召回_5 [0.9993]

但是,没有保存单个.ckpt文件(即使在train_image_classifier.py运行结束时,也会出现类似“ model.ckpt保存到checkpoint_dir” 的消息),是3个文件(.ckpt-180000.data-00000-of-00001.ckpt-180000.index.ckpt-180000.meta)。

OpenVINO模型优化器需要一个检查点文件。

根据docs,我用以下参数调用 mo_tf.py

python mo_tf.py --input_model D:/model/mobilenet_v2_224.pb --input_checkpoint D:/model/model.ckpt-180000 -b 1

给出错误(如果通过--input_checkpoint D:/model/model.ckpt,则相同):

[ ERROR ]  The value for command line parameter "input_checkpoint" must be existing file/directory,  but "D:/model/model.ckpt-180000" does not exist.

错误消息已清除,磁盘上没有此类文件。但据我所知,大多数tf实用程序都在后台将.ckpt-????。meta转换为.ckpt。

尝试致电:

python mo_tf.py --input_model D:/model/mobilenet_v2_224.pb --input_meta_graph D:/model/model.ckpt-180000.meta -b 1

原因:

[ ERROR ]  Unknown configuration of input model parameters

对于我来说,将图形转移到OpenVINO中间表示形式并不重要,只需要达到该结果即可。

非常感谢。

编辑

我设法在tf slim模型的冻结图上运行OpenVINO模型优化器。但是我仍然不知道为什么以前的尝试(基于文档)失败了。

1 个答案:

答案 0 :(得分:0)

您可以尝试将模型转换为冻结格式(.pb),然后使用OpenVINO转换模型。

.ckpt-meta具有元图。没有可变值的计算图结构。 您可以在张量板上观察到的那个。

.ckpt-data具有变量值,没有框架或结构。要恢复模型,我们需要元文件和数据文件。

.pb文件保存整个图形(元数据)

根据OpenVINO的文档:

使用Python *代码定义网络时,您必须创建一个推理图文件。通常,图形以允许模型训练的形式构建。这意味着所有可训练的参数在图中均表示为变量。要将图形与模型优化器一起使用,应将其冻结。 https://software.intel.com/en-us/articles/OpenVINO-Using-TensorFlow

OpenVINO通过转换以冻结形式传递的加权图来优化模型。