tensorflow保存的模型具有空标记集

tensorflow保存的模型具有空标记集,tensorflow,tensorflow2.0,tensorflow-lite,tensorflow-serving,Tensorflow,Tensorflow2.0,Tensorflow Lite,Tensorflow Serving,我正在尝试将保存的模型转换为tflite 这是我正在尝试的模型 但是,当我尝试使用tflite\u convert $tflite\u convert--保存的\u模型\u目录测试--输出\u文件输出 RuntimeError:在SavedModel中找不到与标记{'serve'}关联的MetaGraphDef。要检查SavedModel中的可用标记集,请使用SavedModel CLI:`saved\u model\u CLI` 可用的\u标记:[set()] 上面说,没有service标

我正在尝试将保存的模型转换为tflite

这是我正在尝试的模型

但是,当我尝试使用
tflite\u convert

$tflite\u convert--保存的\u模型\u目录测试--输出\u文件输出
RuntimeError:在SavedModel中找不到与标记{'serve'}关联的MetaGraphDef。要检查SavedModel中的可用标记集,请使用SavedModel CLI:`saved\u model\u CLI`
可用的\u标记:[set()]
上面说,没有
service
标签。似乎保存的模型必须有
service
标记。()

因此,我尝试使用它所说的
saved\u model\u cli
模块

$saved\u model\u cli show--dir test--all
2021-04-30 18:33:38.832134:I tensorflow/stream_executor/platform/default/dso_loader.cc:49]已成功打开动态库libcudart.so.11.0
标记集为“”的MetaGraphDef包含以下SignatureDefs:
签名定义['default']:
给定的SavedModel SignatureDef包含以下输入:
输入['images']张量信息:
dtype:DT_FLOAT
形状:(1,-1,-1,3)
名称:中心输入/图像张量:0
给定的SavedModel SignatureDef包含以下输出:
输出['detection_Box']张量信息:
dtype:DT_FLOAT
形状:(-1,4)
名称:集线器输入/跨步片:0
输出['detection\u class\u entities']张量信息:
dtype:DT_字符串
形状:(-1,1)
名称:集线器输入/索引到字符串查找:0
输出['detection\u class\u labels']张量信息:
数据类型:DT_INT64
形状:(-1,1)
名称:集线器输入/跨步片2:0
输出['detection\u class\u names']张量信息:
dtype:DT_字符串
形状:(-1,1)
名称:中心\u输入/索引\u到\u字符串\u 1\u查找:0
输出[‘检测分数’]张量信息:
dtype:DT_FLOAT
形状:(-1,1)
名称:集线器输入/跨步片1:0
方法名称为:
似乎有一个名为
'
的标记。因此,我尝试将
'
传递到
已保存的\u model\u cli

$saved\u model\u cli convert--dir test--output\u dir output--tag\u set''tensorrt
...
运行时错误:在SavedModel中找不到与标记“”关联的MetaGraphDef。要检查SavedModel中的可用标记集,请使用SavedModel CLI:`saved\u model\u CLI`
可用的_标记:[set()]。尝试传递“-convert\u tf1\u model=True”。
真奇怪。。即使有
'
标记,它也找不到该标记

所以,我就像“它无法识别名为
?”的标记一样

但事实证明,它与
show
命令配合得很好

$saved_model_cli show--dir test--tag_set“”--签名定义默认值
2021-04-30 18:39:54.519457:I tensorflow/stream_executor/platform/default/dso_loader.cc:49]已成功打开动态库libcudart.so.11.0
给定的SavedModel SignatureDef包含以下输入:
输入['images']张量信息:
dtype:DT_FLOAT
形状:(1,-1,-1,3)
名称:中心输入/图像张量:0
给定的SavedModel SignatureDef包含以下输出:
输出['detection_Box']张量信息:
dtype:DT_FLOAT
形状:(-1,4)
名称:集线器输入/跨步片:0
输出['detection\u class\u entities']张量信息:
dtype:DT_字符串
形状:(-1,1)
名称:集线器输入/索引到字符串查找:0
输出['detection\u class\u labels']张量信息:
数据类型:DT_INT64
形状:(-1,1)
名称:集线器输入/跨步片2:0
输出['detection\u class\u names']张量信息:
dtype:DT_字符串
形状:(-1,1)
名称:中心\u输入/索引\u到\u字符串\u 1\u查找:0
输出[‘检测分数’]张量信息:
dtype:DT_FLOAT
形状:(-1,1)
名称:集线器输入/跨步片1:0
方法名称为:
我认为模型创建时出现了一些问题。或者,我错过了什么


您能给我一些建议吗?

首先,请尝试使用TFLiteConverter Python API进行转换,这是一种推荐的方法。如果要在tflite\u convert命令行工具中指定标记集名称,可以通过“-saved\u model\u tag\u set”参数进行指定。