准备张量分配时发生意外故障

时间:2019-04-22 12:05:52

标签: android tensorflow machine-learning computer-vision artificial-intelligence

我正在使用tflite进行语义分割。我有一个训练有素的模型可以从背景中分割对象,该模型是在deeplab上训练的。

我已使用以下代码将此模型(冻结推理图)转换为tflite格式:

tflite_convert \
  --output_file=test.lite \
  --graph_def_file=frozen_inference_graph.pb \
  --input_arrays=ImageTensor \
  --output_arrays=SemanticPredictions \
  --input_shapes=1,600,450,3 \
  --inference_input_type=QUANTIZED_UINT8 \
  --inference_type=FLOAT \
  --mean_values=128 \
  --std_dev_values=128 

模型在android上加载,但是当我尝试运行推理时,会出现此错误:

  

由于:java.lang.IllegalStateException:内部错误:意外   准备张量分配时失败:   third_party / tensorflow / lite / kernels / unpack.cc:54 NumDimensions(输入)

     
    

1不正确。节点号4(UNPACK)无法准备。

  

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

它适用于以下命令:

bazel-bin/tensorflow/lite/toco/toco \
  --input_file=deeplabv3_mnv2_pascal_tain.pb \
  --output_file=test.tflite \
  --inference_input_type=QUANTIZED_UINT8  \
  --inference_type=FLOAT \
  --input_arrays=ImageTensor  \
  --output_arrays=SemanticPredictions  \
  --input_shapes=1,513,513,3 \
  --mean_values=128 \
  --std_dev_values=128

当我从源代码安装tensorflow时它起作用了。为了从源代码安装张量流,我使用了(link