Transformers 文件

將 🤗 Transformers 模型匯出至 ONNX

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

將 🤗 Transformers 模型匯出至 ONNX

🤗 Transformers 提供了一個 transformers.onnx 包,您可以透過利用配置物件將模型檢查點轉換為 ONNX 圖。

更多詳情請參見有關匯出 🤗 Transformers 模型的指南

ONNX 配置

我們提供了三個抽象類,您應根據希望匯出的模型架構型別繼承這些類

OnnxConfig

class transformers.onnx.OnnxConfig

< >

( config: PretrainedConfig task: str = 'default' patching_specs: typing.Optional[list[transformers.onnx.config.PatchingSpec]] = None )

ONNX 可匯出模型的基類,描述瞭如何透過 ONNX 格式匯出模型的元資料。

flatten_output_collection_property

< >

( name: str field: Iterable ) (dict[str, Any])

引數

  • name — 巢狀結構的名稱
  • field — 可能需要扁平化的結構

返回

(dict[str, Any])

輸出具有扁平化的結構和對映此新結構的鍵。

將任何潛在的巢狀結構扁平化,透過結構內元素的索引來擴充套件欄位名稱。

from_model_config

< >

( config: PretrainedConfig task: str = 'default' )

引數

  • config — 匯出到 ONNX 時要使用的模型配置

為特定模型例項化一個 OnnxConfig

生成虛擬輸入

< >

( preprocessor: typing.Union[ForwardRef('PreTrainedTokenizerBase'), ForwardRef('FeatureExtractionMixin'), ForwardRef('ImageProcessingMixin')] batch_size: int = -1 seq_length: int = -1 num_choices: int = -1 is_pair: bool = False framework: typing.Optional[transformers.utils.generic.TensorType] = None num_channels: int = 3 image_width: int = 40 image_height: int = 40 sampling_rate: int = 22050 time_duration: float = 5.0 frequency: int = 220 tokenizer: typing.Optional[ForwardRef('PreTrainedTokenizerBase')] = None )

引數

  • preprocessor — (PreTrainedTokenizerBase, FeatureExtractionMixinImageProcessingMixin): 與此模型配置關聯的預處理器。
  • batch_size (int, 可選, 預設為 -1) — 匯出模型的批大小(-1 表示動態軸)。
  • num_choices (int, 可選, 預設為 -1) — 為多項選擇任務提供的候選答案數量(-1 表示動態軸)。
  • seq_length (int, 可選, 預設為 -1) — 匯出模型的序列長度(-1 表示動態軸)。
  • is_pair (bool, 可選, 預設為 False) — 指示輸入是否為文字對(句子 1, 句子 2)
  • framework (TensorType, 可選, 預設為 None) — 分詞器將為其生成張量的框架(PyTorch 或 TensorFlow)。
  • num_channels (int, 可選, 預設為 3) — 生成影像的通道數。
  • image_width (int, 可選, 預設為 40) — 生成影像的寬度。
  • image_height (int, 可選, 預設為 40) — 生成影像的高度。
  • sampling_rate (int, 可選,預設為 22050) — 用於音訊資料生成的取樣率。
  • time_duration (float, 可選,預設為 5.0) — 用於音訊資料生成的總取樣秒數。
  • frequency (int, 可選,預設為 220) — 生成音訊所需的自然頻率。

為特定框架生成提供給 ONNX 匯出器的輸入

generate_dummy_inputs_onnxruntime

< >

( reference_model_inputs: Mapping ) Mapping[str, Tensor]

引數

  • reference_model_inputs ([Mapping[str, Tensor]) — 模型的參考輸入。

返回

Mapping[str, Tensor]

提供給模型 forward 函式的 kwargs 的對映

使用參考模型輸入為 ONNX Runtime 生成輸入。對於編碼器和解碼器作為獨立 ONNX 檔案匯出的 seq2seq 模型,可以重寫此方法以執行推理。

use_external_data_format

< >

( num_parameters: int )

引數

  • num_parameters — 模型中的引數數量

指示模型是否需要使用外部資料格式的標誌

OnnxConfigWithPast

class transformers.onnx.OnnxConfigWithPast

< >

( config: PretrainedConfig task: str = 'default' patching_specs: typing.Optional[list[transformers.onnx.config.PatchingSpec]] = None use_past: bool = False )

fill_with_past_key_values_

< >

( inputs_or_outputs: Mapping direction: str inverted_values_shape: bool = False )

引數

  • inputs_or_outputs — 要填充的對映。
  • direction — “inputs” 或 “outputs”,它指定 input_or_outputs 是輸入對映還是輸出對映,這對軸的命名很重要。
  • inverted_values_shape — 如果為 True,則將值儲存在動態軸 1 上,否則在軸 2 上。

用 past_key_values 填充 input_or_outputs 對映,並考慮動態軸。

with_past

< >

( config: PretrainedConfig task: str = 'default' )

引數

  • config — 匯出到 ONNX 時要使用的底層模型的配置

例項化一個 OnnxConfig,其 `use_past` 屬性設定為 True

OnnxSeq2SeqConfigWithPast

class transformers.onnx.OnnxSeq2SeqConfigWithPast

< >

( config: PretrainedConfig task: str = 'default' patching_specs: typing.Optional[list[transformers.onnx.config.PatchingSpec]] = None use_past: bool = False )

ONNX 特性

每個 ONNX 配置都與一組 *特性* 相關聯,使您能夠為不同型別的拓撲或任務匯出模型。

FeaturesManager

class transformers.onnx.FeaturesManager

< >

( )

check_supported_model_or_raise

< >

( model: typing.Union[ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] feature: str = 'default' )

引數

  • model — 要匯出的模型。
  • feature — 要檢查是否可用的特性名稱。

檢查模型是否具有請求的特性。

determine_framework

< >

( model: str framework: typing.Optional[str] = None )

引數

  • model (str) — 要匯出的模型名稱。
  • framework (str, 可選, 預設為 None) — 用於匯出的框架。如果未提供,則參見上述優先順序。

確定用於匯出的框架。

優先順序順序如下

  1. 透過 `framework` 的使用者輸入。
  2. 如果提供了本地檢查點,則使用與檢查點相同的框架。
  3. 環境中的可用框架,優先使用 PyTorch

get_config

< >

( model_type: str feature: str ) OnnxConfig

引數

  • model_type (str) — 要檢索配置的模型型別。
  • feature (str) — 要檢索配置的特性。

返回

OnnxConfig

組合的配置

獲取 model_type 和 feature 組合的 OnnxConfig。

get_model_class_for_feature

< >

( feature: str framework: str = 'pt' )

引數

  • feature (str) — 所需的特性。
  • framework (str, optional, 預設為 "pt") — 用於匯出的框架。

嘗試從特性名稱中檢索 AutoModel 類。

get_model_from_feature

< >

( feature: str model: str framework: typing.Optional[str] = None cache_dir: typing.Optional[str] = None )

引數

  • feature (str) — 所需的特性。
  • model (str) — 要匯出的模型名稱。
  • framework (str, optional, 預設為 None) — 用於匯出的框架。如果未提供,請參閱 FeaturesManager.determine_framework 以瞭解優先順序。

嘗試從模型名稱和要啟用的特性中檢索模型。

get_supported_features_for_model_type

< >

( model_type: str model_name: typing.Optional[str] = None )

引數

  • model_type (str) — 要檢索其支援特性的模型型別。
  • model_name (str, optional) — 模型物件的名稱屬性,僅用於異常訊息。

嘗試從模型型別中檢索 特性 -> OnnxConfig 建構函式的對映。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.