當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.lite.TFLiteConverter用法及代碼示例


將 TensorFlow 模型轉換為 TensorFlow Lite 模型。

用法

tf.lite.TFLiteConverter(
    funcs, trackable_obj=None
)

參數

  • funcs TensorFlow ConcreteFunction 列表。該列表不應包含重複的元素。
  • trackable_obj funcs 關聯的 tf.AutoTrackable 對象。需要維護對該對象的引用,以便變量不會被垃圾收集,因為函數對變量的引用很弱。僅當用戶不維護 tf.AutoTrackable 對象時才需要這樣做(例如 from_saved_model )。

屬性

  • optimizations 實驗標誌,可能會發生變化。要應用的優化集。例如 {tf.lite.Optimize.DEFAULT}。 (默認無,必須是無或一組類型的值 tf.lite.Optimize )
  • representative_dataset 用於整數量化的生成器函數,其中每個生成的樣本具有與模型輸入相同的順序、類型和形狀。通常,這是從訓練或評估數據集中隨機選擇的數百個樣本的一小部分,沒有特定的順序。這是一個可選屬性,但對於完整整數量化是必需的,即,如果 tf.int8target_spec.supported_types 中唯一支持的類型。請參閱tf.lite.RepresentativeDataset。 (默認無)
  • target_spec 實驗標誌,可能會發生變化。目標設備的規格,包括支持的操作集、支持的類型和一組用戶定義的 TensorFlow Lite 運行時所需的 TensorFlow 算子。請參閱tf.lite.TargetSpec
  • inference_input_type 輸入層的數據類型。請注意,整數類型(tf.int8 和 tf.uint8)目前僅支持用於訓練後整數量化和量化感知訓練。 (默認 tf.float32,必須在 {tf.float32, tf.int8, tf.uint8} 中)
  • inference_output_type 輸出層的數據類型。請注意,整數類型(tf.int8 和 tf.uint8)目前僅支持用於訓練後整數量化和量化感知訓練。 (默認 tf.float32,必須在 {tf.float32, tf.int8, tf.uint8} 中)
  • allow_custom_ops 指示是否允許自定義操作的布爾值。當為 False 時,任何未知操作都是錯誤。當為 True 時,將為任何未知的操作創建自定義操作。開發人員需要使用自定義解析器將這些提供給 TensorFlow Lite 運行時。 (默認為假)
  • experimental_new_converter 實驗標誌,可能會發生變化。啟用基於 MLIR 的轉換。 (默認為真)
  • experimental_new_quantizer 實驗標誌,可能會發生變化。啟用基於 MLIR 的量化轉換,而不是基於 Flatbuffer 的轉換。 (默認為真)
  • experimental_enable_resource_variables 實驗標誌,可能會發生變化。啟用此轉換器轉換資源變量。僅當使用from_saved_model 接口時才允許這樣做。 (默認為假)

示例用法:

# Converting a SavedModel to a TensorFlow Lite model.
  converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
  tflite_model = converter.convert()

# Converting a tf.Keras model to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()

# Converting ConcreteFunctions to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_concrete_functions([func], model)
tflite_model = converter.convert()

# Converting a Jax model to a TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.experimental_from_jax([func], [[
    ('input1', input1), ('input2', input2)])
tflite_model = converter.convert()

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.lite.TFLiteConverter。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。