我在珊瑚开发板上使用了deeplab v3的量化模型。结果不是很精确,所以我想使用非量化模型。
我可以找到deeplab的tflite非量化模型,因此我想生成它。 我在Tensorflow github上下载了xception65_coco_voc_trainval模型: xception65_coco_voc_trainval
然后我使用该命令来转换输入:
bazel-bin/tensorflow/tools/graph_transforms/transform_graph \
--in_graph="/path/to/xception65_coco_voc_trainval.pb" \
--out_graph="/path/to/xception65_coco_voc_trainval_flatten.pb" \
--inputs='ImageTensor' \
--outputs='SemanticPredictions' \
--transforms='
strip_unused_nodes(type=quint8, shape="1,513,513,3")
flatten_atrous_conv
fold_constants(ignore_errors=true, clear_output_shapes=false)
fold_batch_norms
fold_old_batch_norms
remove_device
sort_by_execution_order
然后我使用以下命令生成tflite文件:
tflite_convert \
--graph_def_file="/tmp/deeplab_mobilenet_v2_opt_flatten_static.pb" \
--output_file="/tmp/deeplab_mobilenet_v2_opt_flatten_static.tflite" \
--output_format=TFLITE \
--input_shape=1,513,513,3 \
--input_arrays="ImageTensor" \
--inference_type=FLOAT \
--inference_input_type=QUANTIZED_UINT8 \
--std_dev_values=128 \
--mean_values=128 \
--change_concat_input_ranges=true \
--output_arrays="SemanticPredictions" \
--allow_custom_ops
此命令将为我生成一个tflite文件。我将文件下载到我的珊瑚开发板上,然后尝试运行它。
我在github上使用该示例在珊瑚上尝试了我的deeplab模型: deeplab on coral
启动程序时出现错误:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted
错误来自该行:
engine = BasicEngine(args.model)