![](/img/trans.png)
[英]Can't convert frozen Inception graph .pb created with Docker to .tflite
[英]Can't convert Frozen Inference Graph to .tflite
我一般是 object 检测 API 和 TensorFlow 的新手。 我按照本教程进行操作,最后制作了frozen_inference_graph.pb
。 我想在我的手机上运行这个 object 检测 model,据我了解,这需要我将其转换为 .tflite(如果这没有任何意义,请 lmk)。
当我尝试在此处使用此标准代码进行转换时:
import tensorflow as tf
graph = 'pathtomygraph'
input_arrays = ['image_tensor']
output_arrays = ['all_class_predictions_with_background']
converter = tf.lite.TFLiteConverter.from_frozen_graph(graph, input_arrays, output_arrays)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
它抛出一个错误,说:
ValueError: None 仅在第一维中受支持。 张量“image_tensor”的形状无效“[None, None, None, 3]”
这是我在网上发现的一个常见错误,在搜索了很多线程后,我试图给代码一个额外的参数:
converter = tf.lite.TFLiteConverter.from_frozen_graph(
graph, input_arrays, output_arrays,input_shapes={"image_tensor":[1,600,600,3]})
现在看起来像这样:
import tensorflow as tf
graph = 'pathtomygraph'
input_arrays = ['image_tensor']
output_arrays = ['all_class_predictions_with_background']
converter = tf.lite.TFLiteConverter.from_frozen_graph(
graph, input_arrays, output_arrays,input_shapes={"image_tensor":[1,600,600,3]})
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
这首先有效,但最后抛出另一个错误,说:
检查失败:array.data_type == array.final_data_type 数组“image_tensor”的实际和最终数据类型不匹配(data_type=uint8,final_data_type=float)。 致命错误:中止
我知道我的输入张量具有 uint8 的数据类型,这会导致不匹配,我猜。 我的问题是,这是处理事情的正确方法吗? (我想在我的手机上运行我的 model)。 如果是,我该如何修复错误? :/
非常感谢。
将您的 model 输入( image_tensor
占位符)更改为具有数据类型tf.float32
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.