Tensorflow Lite导出看起来不会添加权重并添加不受支持的操作

时间:2018-04-01 16:55:51

标签: tensorflow tensorflow-lite

我想在chheckpoint中使用保存的权重重新加载我的一些模型变量,然后将其导出到tflite文件。

如果没有查看代码,这个问题有点棘手,所以我用完整的代码制作了这个Colab jupyter笔记本,以便更好地解释它(所有代码都在工作,你可以实际复制一个新的协作并根据需要进行更改):< / p>

https://colab.research.google.com/drive/1wSor4CxEz36LgElVi4y_N8uiSt4-j9b2#scrollTo=XKBQzoW_wd4A

我得到了它,但有两个问题:

  • 导出的.tflite文件类似于3Ks ,所以我不相信它是整个模型中的权重。只有输入是128x128x3的图像,每个的重量超过3K。
  • 当我最终在Android中导入模型时出现此错误:&#34;未找到名称&#39; VariableV2&#39; / n未找到名称&#39; ReorderAxes&#39; / n注册失败。&#34;

也许最后一个错误是导致保存/恢复操作?当我保存图表定义时,它们看起来就像那里一样。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我意识到我的问题..我试图转换为TFLITE模型而不事先冻结它,TFLITE不允许“VariableV2”节点导致它们不应该在那里..

所有问题都得到纠正,冻结模型如下:

output_graph_def = graph_util.convert_variables_to_constants(sess, sess.graph.as_graph_def(), ["output"])

我失去了一些时间寻找,希望它有所帮助。