scikit-learnのIntel拡張 (scikit-learn-intelex) を試してみる

ライブラリのインストール例

筆者の環境 (miniconda) にはインストール済みなので、コメントアウトしています。

このあたりの、conda-forge からインストール → anaconda リポジトリにアップデート、という手順は、時期によって必要だったり不要だったりすると思います。

ベンチマーク: Intel拡張使用前

scikit-learn の make_classification() 関数で作った架空のデータを、普通の (?) SVMでモデリングしてみます。

ライブラリの読み込み

データセットの生成

学習用、テスト用データの分割

グリッドサーチパラメータの設定

モデリングの実行

(デスクトップPCの場合)
F1スコアを指標とした5-Fold CVを行います。筆者のPCが24スレッド (Ryzen 9 3900XT) なので、20スレッドまで使用するよう指定しています。

モデリングの実行

(ノートPCの場合)
F1スコアを指標とした5-Fold CVを行います。筆者のPCが8スレッド (Intel Core i5-8250U CPU @ 1.60GHz) なので、6スレッドまで使用するよう指定しています。

精度評価

今回は速度の計測が主であって、本題ではないですが。

Intel拡張を使用する場合

ダイナミック・パッチ

利用時に、機能のオン・オフを切り替えられるそうです。

モデリングの実行

F1スコアを指標とした5-Fold CVを行います。

精度評価

今回は速度の計測が主であって、本題ではないですが。

ダイナミック・パッチをオフにする