Перевести оценку тензорного потока 2.0 в тензорный поток облегченного - PullRequest
1 голос
/ 23 апреля 2020

После экспорта моего файла сохраненного_моделя.pb я хотел бы преобразовать его в TfLite.

У меня была та же ошибка, что и в этом сообщении . Поэтому я попробовал предложенный ответ:

import tensorflow as tf

export_dir = './saved/1587630121'

# Convert the model.
saved_model_obj = tf.saved_model.load(export_dir="saved/1587630121/")
concrete_func = saved_model_obj.signatures['serving_default']

#this line produce the error: ValueError: This converter can only convert a single
#ConcreteFunction. Converting multiple functions is under development. :
#converter = tf.lite.TFLiteConverter.from_saved_model(export_dir)

converter = tf.lite.TFLiteConverter.from_concrete_functions([concrete_func])
print(saved_model_obj.signatures.keys())
# converter.optimizations = [tf.lite.Optimize.DEFAULT]
#converter.experimental_new_converter = True

tflite_model = converter.convert()

Однако у меня появилась новая ошибка:

Вывод на печать:

keysView(_SignatureMap({'predict': <tensorflow.python.eager.wrap_function.WrappedFunction     object at 0x7f6a9843cc90>, 
'classification':     <tensorflow.python.eager.wrap_function.WrappedFunction object at 0x7f6a981a6190>,
 'regression': <tensorflow.python.eager.wrap_function.WrappedFunction object at 0x7f6a74f78190>, 
'serving_default': <tensorflow.python.eager.wrap_function.WrappedFunction object at 0x7f6a74d020d0>}))

Ошибка вывода на converter.convert () :

Exception has occurred: ConverterError 
2020-04-23 12:05:52.644550: I tensorflow/lite/toco/import_tensorflow.cc:193] Unsupported data type in placeholder op: 20 
2020-04-23 12:05:52.644632: F tensorflow/lite/toco/import_tensorflow.cc:2690] 
Check failed: status.ok() 
Input_content string_val doesn't have the right dimensions for this string tensor   
 (while processing node 'head/AsString') 
Fatal Python error: Aborted

WARNING:tensorflow:Issue encountered when serializing variables.
Type is unsupported, or the types of the items don't match field type in CollectionDef. 
Note this is a warning and probably safe to ignore.
to_proto not supported in EAGER mode.

На всякий случай я без проблем экспортировал мою оценку DNNclassifier благодаря этому коду:

serving_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(tf.feature_column.make_parse_example_spec(self.feature_columns))
export_path = self.model_trained.export_saved_model(export_dir, serving_input_fn)

Мне интересно, произошла ли ошибка из-за неправильного экспорта моего .pb файл, это возможно? Еще у вас есть идея, чтобы решить эту ошибку?

Спасибо за вашу помощь.

...