我的目标是使用Intel OpenVINO优化器推断张量流苗条模型。使用open vino docs和slides进行推理,并使用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模型优化器。但是我仍然不知道为什么以前的尝试(基于文档)失败了。
答案 0 :(得分:0)
您可以尝试将模型转换为冻结格式(.pb),然后使用OpenVINO转换模型。
.ckpt-meta具有元图。没有可变值的计算图结构。 您可以在张量板上观察到的那个。
.ckpt-data具有变量值,没有框架或结构。要恢复模型,我们需要元文件和数据文件。
.pb文件保存整个图形(元数据)
根据OpenVINO的文档:
使用Python *代码定义网络时,您必须创建一个推理图文件。通常,图形以允许模型训练的形式构建。这意味着所有可训练的参数在图中均表示为变量。要将图形与模型优化器一起使用,应将其冻结。 https://software.intel.com/en-us/articles/OpenVINO-Using-TensorFlow
OpenVINO通过转换以冻结形式传递的加权图来优化模型。