optuna.integration
integration
モジュールには、Optuna を外部の機械学習フレームワークと連携させるためのクラスが含まれています。
Note
Optuna のサードパーティライブラリ向け統合モジュールは、Optuna 本体から optuna-integration というパッケージに移行しつつあります。 リポジトリ および ドキュメント をご確認ください。
Optuna がサポートするほとんどの機械学習フレームワークにおいて、対応する Optuna 統合クラスは、各フレームワークの特定のコールバック API に準拠したコールバックオブジェクトと関数を実装し、モデル訓練の各中間ステップで呼び出すためのものです。これらのコールバックで実装される機能には、以下が含まれます:
optuna.trial.Trial.report()
を使用して中間モデルのスコアを Optuna トライアルに報告する機能、optuna.trial.Trial.should_prune()
の結果に基づいてoptuna.TrialPruned()
を発生させ、現在のモデルを剪定する機能、MLflowCallback
のように現在のトライアル番号などの中間 Optuna データをフレームワークに報告する機能。
scikit-learn については、scikit-learn の BaseEstimator 機能とクラスレベルの Study
オブジェクトへのアクセスを組み合わせた統合 OptunaSearchCV
推定器が利用可能です。
各統合の依存関係
各統合に必要な依存関係を以下にまとめます。
統合 |
依存関係 |
---|---|
allennlp, torch, psutil, jsonnet |
|
botorch, gpytorch, torch |
|
catboost |
|
chainermn |
|
chainer |
|
cma |
|
distributed |
|
fastai |
|
keras |
|
lightgbm, scikit-learn |
|
lightgbm |
|
mlflow |
|
mxnet |
|
PyTorch Distributed |
torch |
PyTorch (Ignite) |
pytorch-ignite |
PyTorch (Lightning) |
pytorch-lightning |
scikit-learn, shap |
|
pandas, scipy, scikit-learn |
|
skorch |
|
tensorboard, tensorflow |
|
tensorflow, tensorflow-estimator |
|
tensorflow |
|
wandb |
|
xgboost |