日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Python接口文檔

PAI-Blade提供Python接口供您調用,從而將優(yōu)化模型集成在工作流中。本文介紹這些Python接口的詳細信息,包括簽名格式、輸入?yún)?shù)及返回結果。

optimize

PAI-Blade主要使用optimize接口進行模型優(yōu)化,接口詳情如下:

  • 簽名格式

    def optimize(
        model: Any,
        optimization_level: str,
        device_type: str,
        config: Optional[Config] = None,
        inputs: Optional[List[str]] = None,
        outputs: Optional[List[str]] = None,
        input_shapes: Optional[List[List[str]]] = None,
        input_ranges: Optional[List[List[str]]] = None,
        test_data: List[Dict[str, np.ndarray]] = [],
        calib_data: List[Dict[str, np.ndarray]] = [],
        custom_ops: List[str] = [],
        verbose: bool = False,
    ) -> Tuple[Any, OptimizeSpec, OptimizeReport]:
        pass
  • 輸入?yún)?shù)

    參數(shù)

    類型

    是否必選

    描述

    默認值

    model

    多種

    待優(yōu)化的模型,支持以下類型的模型:

    • 如果優(yōu)化TensorFlow模型,支持以下格式:

      • GraphDef對象。

      • GraphDef PB文件路徑,即以.pb.pbtxt為后綴的文件。

      • SavedModel目錄,字符串格式的路徑。

    • 如果優(yōu)化PyTorch模型,支持以下格式:

      • torch.nn.Module對象。

      • torch.nn.Module導出的文件,字符串格式的路徑,該文件以.pt為后綴。

    optimization_level

    STRING

    優(yōu)化級別,取值如下(不區(qū)分大小寫):

    • o1:表示無損優(yōu)化,包括圖改寫、編譯優(yōu)化等。

    • o2:表示量化優(yōu)化。

    device_type

    STRING

    模型運行的設備類型,取值如下(不區(qū)分大小寫):

    • gpu

    • cpu

    • edge (暫不支持PyTorch)

    inputs

    LIST[STRING]

    輸入節(jié)點名稱。如果不指定該參數(shù),則系統(tǒng)嘗試自動推斷。

    None

    outputs

    LIST[STRING]

    輸出節(jié)點名稱。如果不指定該參數(shù),則系統(tǒng)嘗試自動推斷。

    None

    input_shapes

    LIST[LIST[STRING]]

    輸入Tensor可能的形狀,用于提升特定場景的優(yōu)化效果。內層列表元素個數(shù)必須等于模型輸入Tensor的數(shù)量,每個元素是一個字符串,表示某種輸入的形狀,例如'1*512'。如果有多組可能的形狀,則在外層列表中增加元素即可。例如,有兩個輸入的模型可能有如下形狀或若干組可能的形狀,取值示例如下:

    • [['1*512', '3*256']]

    • [
          ['1*512', '3*256'],
          ['5*512', '9*256'],
          ['10*512', '27*256']
      ]

    None

    input_ranges

    LIST[LIST[STRING]]

    每個輸入Tensor的元素取值范圍。內層列表元素數(shù)量必須等于模型輸入Tensor的數(shù)量,每個元素是一個字符串,表示某種取值范圍。

    取值范圍可以使用方括號加實數(shù)或字符表示,例如'[1,2]'、'[0.3,0.9]'及'[a,f]'等。如果有多組可能的取值范圍,則在外層列表中增加元素即可。例如,有兩個輸入的模型可能有如下取值范圍或若干組可能的取值范圍,取值示例分別如下:

    • [['[0.1,0.4]', '[a,f]']]

    • [
          ['[0.1,0.4]', '[a,f]'],
          ['[1.1,1.4]', '[h,l]'],
          ['[2.1,2.4]', '[n,z]']
      ]

    None

    test_data

    多種

    用于模型執(zhí)行速度校準的測試數(shù)據(jù)。對于不同類型的模型,其測試數(shù)據(jù)格式存在差異,其中:

    • TensorFlow模型的測試數(shù)據(jù)為包含若干組feed_dict的列表,類型為LIST[DICT[STRING, np.ndarray]]。

    • PyTorch模型的測試數(shù)據(jù)為若干組輸入Tensor Tuple,類型為LIST[Tuple[torch.tensor, ]]。

    []

    calib_data

    多種

    用于量化優(yōu)化的校準數(shù)據(jù)。當優(yōu)化級別為o2時,必須指定該參數(shù)。校準數(shù)據(jù)的數(shù)據(jù)類型與測試數(shù)據(jù)相同。

    []

    custom_ops

    LIST[STRING]

    自定義算子庫的路徑。如果模型中包含用戶的自定義算子庫文件,需要把依賴的庫文件路徑放到列表中。

    []

    verbose

    BOOL

    是否打印更多日志,包括如下取值:

    • True:打印更多日志

    • False:無需打印更多日志

    False

    config

    blade.Config

    高級配置,詳情請參見下方的blade.Config參數(shù)表。

    blade.Config用于傳遞優(yōu)化的高級參數(shù),其構造函數(shù)的簽名如下。

    class Config(ABC):
        def __init__(
            self,
            disable_fp16_accuracy_check: bool = False,
            disable_fp16_perf_check: bool = False,
            enable_static_shape_compilation_opt: bool = False,
            enable_dynamic_shape_compilation_opt: bool = True,
            quant_config: Optional[Dict[str, str]] = None,
        ) -> None:
            pass

    簽名中的參數(shù)含義如下表所示。

    表 1. blade.Config

    參數(shù)

    是否必選

    類型

    描述

    默認值

    disable_fp16_accuracy_check

    BOOL

    是否在fp16優(yōu)化中開啟準確性校驗,取值如下:

    • False:關閉準確性校驗

    • True:開啟準確性校驗

    False

    disable_fp16_perf_check

    BOOL

    是否在fp16優(yōu)化中開啟性能校驗,取值如下:

    • False:關閉性能校驗

    • True:開啟性能校驗

    False

    enable_static_shape_compilation_opt

    BOOL

    是否開啟固定尺寸的編譯優(yōu)化,即Static Shape模式編譯,取值如下:

    • False:關閉固定尺寸的編譯優(yōu)化

    • True:開啟固定尺寸的編譯優(yōu)化

    False

    enable_dynamic_shape_compilation_opt

    BOOL

    是否開啟動態(tài)尺寸的編譯優(yōu)化,即Dynamic Shape模式編譯,取值如下:

    • False:關閉動態(tài)尺寸的編譯優(yōu)化

    • True:開啟動態(tài)尺寸的編譯優(yōu)化

    True

    quant_config

    DICT[STRING, STRING]

    量化優(yōu)化相關的配置。目前僅支持唯一的key值weight_adjustment,表示是否嘗試調整模型參數(shù)以減小量化精度損失。該key值對應的value包括如下取值:

    • "true":開啟該選項。

    • "false":關閉該選項。

    None

  • 返回值

    返回一個具有三個元素的Tuple,類型為Tuple[Any, OptimizeSpec, OptimizeReport]。其中三個元素的詳細信息如下表所示。

    序號

    含義

    類型

    描述

    優(yōu)化后的模型

    多種

    其類型與輸入模型相同。例如TensorFlow SavedModel的返回結果是GraphDef對象。

    優(yōu)化的外部依賴

    OptimizeSpec

    Python中通過with語句使達到預期優(yōu)化效果的外部依賴都生效,該依賴包括環(huán)境變量、編譯緩存等。SDK中暫不需要該參數(shù)。

    優(yōu)化報告

    OptimizeReport

    詳情請參見優(yōu)化報告