1

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

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

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

我让它工作但有两个问题:

  • 导出的 .tflite 文件就像 3Ks,所以我不相信它是包含权重的整个模型。只有输入是128x128x3的图像,每一个权重超过3K。
  • 当我最终在 Android 中导入模型时,出现此错误:“未找到名称‘VariableV2’的自定义操作/n 未找到名称‘ReorderAxes’的自定义操作/n 注册失败。”

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

提前致谢。

4

1 回答 1

0

我意识到我的问题..我正在尝试将模型转换为 TFLITE 而不预先冻结它,TFLITE 不允许“VariableV2”节点,因为它们不应该存在..

所有问题都得到纠正,像这样冻结模型:

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

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

于 2018-04-10T11:07:00.323 回答