Tensorflow Lite: нет модуля с именем tf.contrib.lite - PullRequest
0 голосов
/ 15 мая 2018

Я попытался преобразовать уже существующий замороженный граф, который сохраняется в .pb-файле, с помощью следующего кода (tf_lite_converter.py):

#!/usr/bin/env python
import sys
import tensorflow as tf

from tf.contrib.lite import convert_savedmodel

convert_savedmodel.convert(
    saved_model_dir="/frozen_inference_graph.pb",
    output_tflite="/TF_Lite_Model")

При запуске кода с

python tf_lite_converter.py 

в моей среде anaconda выдает ошибку:

ImportError: No module named tf.contrib.lite

Моя цель - получить из моего .pb-графа тензор потока-модели для использования в приложении Android.Я уже пытался собрать tflite с помощью toco через bazel, но, возможно (или, скорее всего), я сделал что-то не так или это был неправильный способ решить проблему.

Ссылка на видео от разработчиков Tensorflow: https://youtu.be/FAMfy7izB6A?t=11m49s

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Ничто из вышеперечисленного не помогло мне.

Я понизил до Tensorflow 1.7 и преобразовал модель .pb в модель .tflite, используя toco.

$ pip install --upgrade "tensorflow==1.7.*"

$ toco \
  --input_file=tf_files/retrained_graph.pb \
  --output_file=tf_files/optimized_graph.lite \
  --input_format=TENSORFLOW_GRAPHDEF \
  --output_format=TFLITE \
  --input_shape=1,${IMAGE_SIZE},${IMAGE_SIZE},3 \
  --input_array=input \
  --output_array=final_result \
  --inference_type=FLOAT \
  --input_data_type=FLOAT

Ссылка: https://codelabs.developers.google.com/codelabs/tensorflow-for-poets-2-tflite/#2 https://github.com/googlecodelabs/tensorflow-for-poets-2/issues/52 https://medium.com/@rdeep/tensorflow-lite-tutorial-easy-implementation-in-android-145443ec3775

0 голосов
/ 15 мая 2018

Код в этом видео, вероятно, из внутренней версии разработки.

convert_savedmodel был переименован в convert_saved_model в https://github.com/tensorflow/tensorflow/commit/db076ca01f12368c9476fa4db9d87756f22f9670

Кажется, что работает с tenorflow 1.8:

from  tensorflow.contrib.lite.python import convert_saved_model

convert_saved_model.convert(saved_model_dir="/frozen_inference_graph.pb",output_tflite="/TF_Lite_Model")

Следующее относится к тензорному потоку, созданному из текущего мастера (метод и параметр были переименованы):

from  tensorflow.contrib.lite.python import convert_saved_model

convert_saved_model.tflite_from_saved_model(saved_model_dir="/frozen_inference_graph.pb",output_file="/TF_Lite_Model")
...