在转换为以下文件的预训练Tensorflow模型时,我们遇到问题
snapshot_140.ckpt.index
snapshot_140.ckpt.meta
snapshot_140.ckpt.data-00000-of-00001
到tensorflow lite 当我们使用转换后的tflie文件进行预测时,所有在使用正常tensorflow模型加载时Nan都给出正确回归预测的预测我们在上面获得了这些文件,通过tensorflow.python.tools.freeze_graph工具从ckpt文件转换为tensorflow .pb图
然后使用TFlite_converter工具转换为tflite
.pb制成张量流模型时效果很好..但是tflite模型会产生所有的nan输出
一个(潜在解决方案)的灵感来自于此问题: https://github.com/tensorflow/tensorflow/issues/22803?fbclid=IwAR0x25CEZjHAQ0dUFBVWa1V3lVcCVIpT4q7lbUUGS9T59w2aXqnUVtNCBHI#issuecomment-474249701
那么,如果仅给ckpt文件提供了访问模型体系结构的权限,如何将batch_norm is_training标志设置为false?
如果这确实是解决问题的方法
或者我们应该怎么做才能修复张量流精简模型以提供与张量流模型相同的输出
此代码用于获取提供nans的tensorflow lite模型
import tensorflow as tf
with tf.Session(config=tf.ConfigProto(allow_soft_placement=True,
log_device_placement=True)) as sess:
saver = tf.train.import_meta_graph('snapshot_140.ckpt.meta')
saver.restore(sess, "snapshot_140.ckpt")
inp = tf.get_default_graph().get_tensor_by_name("tower_0/Placeholder:0")
out = tf.get_default_graph().get_tensor_by_name("tower_0/out/BiasAdd:0")
print(out)
converter = tf.contrib.lite.TFLiteConverter.from_session(sess, [inp], [out])
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
答案 0 :(得分:0)
基本上无法访问代码/架构,我不确定如何运行推理!如果您无法运行推理,那么检查点有什么用 :) ..这是我解决它的方法 ..我确实可以访问完整代码(EAST 文本检测)和
如果此解决方法没有帮助,请道歉