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 に PySAMACT SAMLayer コンストラクタに存在しないキーが指定 された場合。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 に PySAMACT SAMLayer コンストラクタに存在しないキーが指定された場合。 config 自体の値の妥当性は SAMACTConfig のコンスト ラクタで検証済みであるため、本関数の実行中に config の 値が原因でこの例外が送出されることはない。