

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# SageMaker Smart Sifting Python SDK 參考
<a name="train-smart-sifting-pysdk-reference"></a>

此頁面提供將 SageMaker Smart Sifting 套用至訓練指令碼所需的 Python 模組參考。

## SageMaker Smart Sifting 組態模組
<a name="train-smart-sifting-pysdk-base-config-modules"></a>

**`class smart_sifting.sift_config.sift_configs.RelativeProbabilisticSiftConfig()`**

SageMaker Smart Sifting 組態類別。

**參數**
+ `beta_value` (float) – 測試 (常數) 值。它用於根據損失值歷史記錄中的損失百分位數，計算選取訓練範例的機率。降低測試值會導致資料篩選百分比較低，而提高測試值則導致資料篩選百分比較高。測試值沒有下限或上限，但必須是正值。下列參考表提供與 `beta_value` 相關的篩選率資訊。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/train-smart-sifting-pysdk-reference.html)
+ `loss_history_length` (int) – 針對相對閾值損失型取樣要儲存的先前訓練損失數量。
+ `loss_based_sift_config` (dict 或 `LossConfig` 物件） – 指定傳回 SageMaker Smart Sifting 損失介面組態的 `LossConfig` 物件。

**`class smart_sifting.sift_config.sift_configs.LossConfig()`**

`RelativeProbabilisticSiftConfig` 類別的 `loss_based_sift_config` 參數組態類別。

**參數**
+ `sift_config` (dict 或 `SiftingBaseConfig` 物件） – 指定傳回篩選基礎組態字典的 `SiftingBaseConfig` 物件。

**`class smart_sifting.sift_config.sift_configs.SiftingBaseConfig()`**

`LossConfig` 的 `sift_config` 參數組態類別。

**參數**
+ `sift_delay` (int) – 開始篩選之前要等待的訓練步驟數量。建議您在模型中所有層都有足夠的訓練資料檢視之後再開始篩選。預設值為 `1000`。
+ `repeat_delay_per_epoch` (bool) – 指定是否延後篩選每個 epoch。預設值為 `False`。

## SageMaker Smart Sifting 資料批次轉換模組
<a name="train-smart-sifting-pysdk-batch-transform-modules"></a>

`class smart_sifting.data_model.data_model_interface.SiftingBatchTransform`

SageMaker Smart Sifting Python 模組，用於定義如何執行批次轉換。您可以透過此方法設定批次轉換類別，將訓練資料的資料格式轉換為 `SiftingBatch` 格式。SageMaker Smart Sifting 可以將此格式的資料篩選並累積到篩選批次。

`class smart_sifting.data_model.data_model_interface.SiftingBatch`

定義可篩選和累積的批次資料類型的介面。

`class smart_sifting.data_model.list_batch.ListBatch`

用於追蹤清單批次以進行篩選的模組。

`class smart_sifting.data_model.tensor_batch.TensorBatch`

用於追蹤張量批次以進行篩選的模組。

## SageMaker Smart Sifting 遺失實作模組
<a name="train-smart-sifting-pysdk-loss-interface-moddule"></a>

`class smart_sifting.loss.abstract_sift_loss_module.Loss`

一種包裝函式模組，用於將 SageMaker Smart Sifting 介面註冊到 PyTorch 型模型的損失函式。

## SageMaker Smart Sifting 資料載入器包裝函式模組
<a name="train-smart-sifting-pysdk-dataloader-wrapper-module"></a>

`class smart_sifting.dataloader.sift_dataloader.SiftingDataloader`

一種包裝函式模組，用於將 SageMaker Smart Sifting 介面註冊到 PyTorch 型模型的資料載入器。

Main Sifting Dataloader 反覆運算器會根據篩選組態，從資料載入器篩選出訓練範例。

**參數**
+ `sift_config` (dict 或 `RelativeProbabilisticSiftConfig` 物件） – `RelativeProbabilisticSiftConfig` 物件。
+ `orig_dataloader` (PyTorch DataLoader 物件） – 指定要包裝的 PyTorch Dataloader 物件。
+ `batch_transforms` (`SiftingBatchTransform` 物件） – (選用) 如果 SageMaker Smart Sifting 程式庫的預設轉換不支援您的資料格式，您必須使用 `SiftingBatchTransform` 模組來建立批次轉換類別。此參數用於傳遞批次轉換類別。此類別用於 `SiftingDataloader`，將資料轉換為 SageMaker Smart Sifting 演算法可接受的格式。
+ `model` (PyTorch 模型物件） – 原始 PyTorch 模型
+ `loss_impl` (`smart_sifting.loss.abstract_sift_loss_module.Loss` 的篩選損失函式) – 使用 `Loss` 模組設定且包裝 PyTorch 損失函式的篩選損失函式。
+ `log_batch_data` (bool) – 指定是否要記錄批次資料。如果設為 `True`，SageMaker Smart Sifting 會記錄保留或篩選的批次詳細資訊。建議您僅在測試訓練任務時開啟它。記錄開啟時，範例會載入 GPU 並傳輸至 CPU，這會帶來額外負荷。預設值為 `False`。