api モジュール
公開ファクトリ関数。
- samact_model_adapter.api.load_from_artifact(artifact_path: str) SAMACTModelAdapter
artifact directory から
SAMACTModelAdapterを復元する。- Parameters:
artifact_path –
SAMACTModelAdapter.save_artifact()で保存した artifact directory のパス。- Returns:
復元された
SAMACTModelAdapter。- Raises:
ArtifactLoadError –
artifact_pathが存在しない場合、metadata.jsonが存在しない、または JSON として読み込めない 場合、metadata に記載された必須ファイルが存在しない場合、mode/taskに応じた必須 metadata が不足している場合、 SAMACT モデルまたは scaler の復元に失敗した場合、metadata と 実ファイルの整合性が取れない場合。
Warning
artifact のロードには pickle を使用するため、信頼できる artifact のみを読み込むこと。
- samact_model_adapter.api.translate_from_pytorch(model: Module, loader: DataLoader[object] | Dataset[object], config: SAMACTConfig | None = None, task: str = 'classification', val_loader: DataLoader[object] | Dataset[object] | None = None, input_getter: Callable[[object], object] | None = None, target_getter: Callable[[object], object] | None = None, dataloader_kwargs: dict[str, object] | None = None) SAMACTModelAdapter
スタンドアロンモードで SAMACT モデルを構築・学習する。
PyTorch モデルの先頭
nn.Linearから入力次元、末尾nn.Linearから 出力次元のみを抽出し、同じ入出力次元を持つ SAMACT モデルを新規に構築・ 学習する。PyTorch モデルの重み・中間構造・活性化関数は SAMACT へ変換 されない。- Parameters:
model – 入出力次元の抽出元となる PyTorch モデル。
loader – 学習データ。
DataLoaderまたはDataset。config – SAMACT モデルの構築・学習設定。未指定の場合は既定値の
SAMACTConfigを使用する。task –
"classification"または"regression"。val_loader –
IterableDataset検証のためだけに使用される。 エポックごとの検証データ評価には使用されない。input_getter – batch から入力を抽出する関数。未指定時は batch を
(x, y)とみなしbatch[0]を入力として扱う。target_getter – batch から target を抽出する関数。未指定時は batch を
(x, y)とみなしbatch[1]を target として 扱う。dataloader_kwargs –
loaderまたはval_loaderがDatasetの場合に、内部でDataLoaderを構築する際のキーワード引数。
- Returns:
mode="standalone"、taskは指定どおりの、学習済みSAMACTModelAdapter。- Raises:
UnsupportedArchitectureError –
modelに未対応レイヤーが含まれる 場合、または Linear 層が 2 層未満で入出力次元を抽出できない 場合。UnsupportedDatasetError –
loaderまたはval_loaderがIterableDataset、またはIterableDatasetベースのDataLoaderである場合。UnsupportedInputShapeError – 学習データから抽出した入力が 3 次元 以上である場合。
InputDimensionMismatchError – 学習データから抽出した入力の次元数が 抽出済みの入力次元と一致しない場合。
UnsupportedBatchFormatError –
input_getter/target_getter未指定時に batch を既定形式(x, y)として解釈できない 場合、またはそれらの実行に失敗した場合。InvalidSAMACTConfigError –
taskが"classification"/"regression"以外の場合、config.samlayer_kwargsに PySAMACTSAMLayerコンストラクタに存在しないキーが指定 された場合。config自体の値の妥当性はSAMACTConfigのコンストラクタで検証済みであるため、本関数の実行中にconfigの値が原因でこの例外が送出されることはない。
- samact_model_adapter.api.compress_from_pytorch(model: Module, loader: DataLoader[object] | Dataset[object], config: SAMACTConfig | None = None, bottleneck_layer_name: str | None = None, val_loader: DataLoader[object] | Dataset[object] | None = None, input_getter: Callable[[object], object] | None = None, dataloader_kwargs: dict[str, object] | None = None) SAMACTModelAdapter
特徴量圧縮モードで SAMACT モデルを構築・学習する。
PyTorch モデルの入力からボトルネック層出力までの前段処理を、SAMACT モデルで近似するよう回帰学習する。学習後の adapter の
predict()は 最終タスクの予測ではなく、SAMACT が再現したボトルネック表現を返す。- Parameters:
model – ボトルネック層を検出・使用する PyTorch モデル。
loader – 学習データ。
DataLoaderまたはDataset。config – SAMACT モデルの構築・学習設定。未指定の場合は既定値の
SAMACTConfigを使用する。bottleneck_layer_name – 使用するボトルネック層名。未指定の場合、 出力層候補を除いた
nn.Linear層のうちout_featuresが 最小の層を自動検出する。val_loader –
IterableDataset検証のためだけに使用される。 エポックごとの検証データ評価には使用されない。input_getter – batch から入力を抽出する関数。未指定時は batch を
(x, y)とみなしbatch[0]を入力として扱う。dataloader_kwargs –
loaderまたはval_loaderがDatasetの場合に、内部でDataLoaderを構築する際のキーワード引数。
- Returns:
mode="compression"、task="compression"の、学習済みSAMACTModelAdapter。- Raises:
UnsupportedArchitectureError –
modelに未対応レイヤーが含まれる 場合。bottleneck_layer_nameを手動指定した場合も検証 される。BottleneckDetectionError –
bottleneck_layer_name未指定時に ボトルネック候補が存在しない場合、指定した層名がmodelに存在しない場合、指定した層がnn.Linearではない場合。UnsupportedDatasetError –
loaderまたはval_loaderがIterableDataset、またはIterableDatasetベースのDataLoaderである場合。UnsupportedInputShapeError – 学習データから抽出した入力が 3 次元 以上である場合。
InputDimensionMismatchError – 学習データから抽出した入力の次元数が
modelから抽出した入力次元と一致しない場合。UnsupportedBatchFormatError –
input_getter未指定時に batch を 既定形式(x, y)として解釈できない場合、またはinput_getterの実行に失敗した場合。InvalidSAMACTConfigError –
config.samlayer_kwargsに PySAMACTSAMLayerコンストラクタに存在しないキーが指定された場合。config自体の値の妥当性はSAMACTConfigのコンスト ラクタで検証済みであるため、本関数の実行中にconfigの 値が原因でこの例外が送出されることはない。