将SSDLite Tensorflow模型转换为TensorflowLite

时间:2019-08-03 10:22:44

标签: tensorflow tensorflow-lite

在转换TensorflowLite时出现以下错误。 This个讨论是由于TensorflowLite操作不受支持而导致的。 但是我使用了discussion中提到的TFLITE_BUILTINS,SELECT_TF_OPS。 我的转换命令是

tflite_convert --output_file=plate_detect.tflite --saved_model_dir=/home/nvidia/Tensorflow/Tensorflow/NumberPlate/Numplate_ssdlitemobilenetv2/inference_graph/saved_model --output_format=TFLITE --inference_type=FLOAT --input_arrays=image_tensor --input_shapes=1,300,300,3 --output_arrays=detection_boxes,detection_classes,detection_scores,num_detections --target_ops=TFLITE_BUILTINS,SELECT_TF_OPS 

(1)如何解决错误?

错误如下(仅显示一些常见错误)

, name: NVIDIA Tegra X2, pci bus id: 0000:00:00.0, compute capability: 6.2)
Traceback (most recent call last):
  File "/usr/local/bin/tflite_convert", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/lite/python/tflite_convert.py", line 412, in main
    app.run(main=run_main, argv=sys.argv[:1])
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/platform/app.py", line 125, in run
    _sys.exit(main(argv))
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/lite/python/tflite_convert.py", line 408, in run_main
    _convert_model(tflite_flags)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/lite/python/tflite_convert.py", line 162, in _convert_model
    output_data = converter.convert()
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/lite/python/lite.py", line 453, in convert
    **converter_kwargs)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/lite/python/convert.py", line 342, in toco_convert_impl
    input_data.SerializeToString())
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/lite/python/convert.py", line 135, in toco_convert_protos
    (stdout, stderr))
RuntimeError: TOCO failed see console for info.
b'2019-08-03 17:51:14.807517: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
Converting unsupported operation: TensorArrayV3\n2019-08-03 17:51:14.807631: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1127] Op node missing output type attribute: Preprocessor/map/TensorArray\n2019-08-03 17:51:14.807748: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
Converting unsupported operation: TensorArrayScatterV3\n2019-08-03 17:51:14.807784: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1127] Op node missing output type attribute: Preprocessor/map/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3\n2019-08-03 17:51:14.807828: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
Converting unsupported operation: LoopCond\n2019-08-03 17:51:14.808180: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1127] Op node missing output type attribute: Preprocessor/map/while/LoopCond\n2019-08-03 17:51:14.808263: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
Converting unsupported operation: Enter\n2019-08-03 17:51:14.808292: I tensorflow/contrib/lite/toco/import_tensorflow.cc:189] Unsupported data type in placeholder op: 20\n2019-08-03 17:51:14.808319: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
Converting unsupported operation: TensorArrayReadV3\n2019-08-03 17:51:14.808432: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
onverting unsupported operation: TensorArrayWriteV3\n2019-08-03 17:51:14.808520: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1127] Op node missing output type attribute: Preprocessor/map/while/TensorArrayWrite/TensorArrayWriteV3\n2019-08-03 17:51:14.808548: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
Converting unsupported operation: Exit\n2019-08-03 17:51:14.808740: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
Converting unsupported operation: TensorArrayGatherV3\n2019-08-03 17:51:14.808862: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
Converting unsupported operation: TensorArrayV3\n2019-08-03 17:51:14.843337: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1127] Op node missing output type attribute: Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_1\n2019-08-03 17:51:14.843367: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
Converting unsupported operation: Enter\n2019-08-03 17:51:14.844758: I tensorflow/contrib/lite/toco/import_tensorflow.cc:1080] 
Converting unsupported operation: TensorArrayGatherV3\n2019-08-03 17:51:15.012825: I tensorflow/contrib/lite/toco/graph_transformations/graph_transformations.cc:39] Before Removing unused ops: 1972 operators, 3294 arrays (0 quantized)\n2019-08-03 17:51:15.550454: I tensorflow/contrib/lite/toco/graph_transformations/graph_transformations.cc:39] After Removing unused ops pass 1: 1951 operators, 3240 arrays (0 quantized)\n2019-08-03 17:51:16.067586: I tensorflow/contrib/lite/toco/graph_transformations/graph_transformations.cc:39] Before general graph transformations: 1951 operators, 3240 arrays (0 quantized)\n2019-08-03 17:51:16.244655: F tensorflow/contrib/lite/toco/graph_transformations/resolve_constant_slice.cc:59] Check failed: dim_size >= 1 (0 vs. 1)\nAborted (core dumped)\n'

(2)删除未使用的操作之前:1972个运算符,3294个数组(0个已量化) 删除未使用的操作后,通过1:1951个运算符,3240个数组(0个已量化)

这是否意味着只有1972-1951 = 21不被转换,其余的都被成功转换?

0 个答案:

没有答案