今回は、フリーソフトのDB4Sのインストール方法と、使い方を説明します。
対象は、SQLiteで、Optunaののデータベースファイルを使って、具体的な操作方法をを記載します。
また、Google Colaboratoryで、SQL命令を実行する方法についても紹介します。
この内容が参考になれば幸いです。
参考文献
はじめに
Optunaの記事一覧です。良かったら参考にしてください。
Optunaの記事一覧
まず、GUIで簡単にSQLiteのデータベースファイルの内容を確認できるDB Browser for SQLite(DB4S)をインストールする手順を説明します。
DB4Sは、SQLiteのデータベース ファイルを作成、設計、編集することができるGUIのオープンソースのツールです。
Optunaのストレージの内容を確認できるだけでなく、データベースファイルを編集することもできるため、スタディの内容を少し変更したい場合などに大変重宝します。
実際に役立った例をあげると、Optuna Dashboardでグラフなどを表示できますが、外れ値のような学習結果があると、見たいスケールで見れない場合がよくあります。その場合に、DB4Sでデータベースを開き、外れ値のような学習結果を、完了から失敗に書き換える(COMPLETE→FAIL)と、グラフが見やすいものになります。
では、やっていきましょう!
DB Browser for SQLite(DB4S)のインストール方法
まずは、DB4Sをインストールしていきます。
このリンクの「DB Browser for SQLite - Standard installer for 64-bit Windows」をダウンロード(32bit環境の場合はそのファイルをダウンロード)します。
sqlitebrowser.org
以下は、インストール手順です。
注意点は、ShortCutsで、全てにチェックを入れることです!
ここにチェックを入れないと、WindowsのメニューにDB Browser for SQLiteが追加されないため、DB4Sを起動するのがとても面倒になります!
以上で、インストールは完了です。お疲れ様でした。
DB Browser for SQLite(DB4S)の使い方
インストールが完了したら、実際にOptunaのストレージの内容を確認してみます。
手順
- DB Browser (SQLite)を起動する
- 「データベースを開く」をクリック
- パソコン版Googleドライブをインストールしてれば、Googleドライブをマウントしているドライブから「optuna.db」を探して開く(パソコン版Googleドライブをインストールしていない場合は、ブラウザでGoogleドライブを開き、optuna.dbをローカルにダウンロードして開く)
以下のような画面になります。
データベース構造のタブが表示されており、optuna.dbが持つ13個のテーブルが確認できます。
続いて、データ閲覧のタブをクリックしてみます。具体的なデータが見えると思います。
テーブルを他のテーブルに切り替えると、そのテーブルの内容が確認できます。
以下は、studiesテーブルを選択したところです。
ここでは、3つのスタディが確認できます。
続いて、trialsテーブルを選択します。
上記のstudiesテーブルの内容を確認したところで、「ch2-rf」は「study_id」が3でした。trialsテーブルには、全てのスタディのトライアルが格納されており、「study_id」で、どのスタディのトライアルかが識別できます。
「state」という列が、1回のトライアル(1回の学習)の状態を示し、「COMPLETE」の場合は正常にトライアル(学習)が終了したという意味になります。
トライアルを編集したい場合は、この画面で、編集したいトライアルの行の、編集したい列(例えば、state)を選択し、右上のテキストボックスに表示された値を変更し、「適用」を押します(この時点ではデータベースファイルに反映されてないので注意!)。
変更内容を確認して、問題がなければ、「変更を書き込み」をクリックすると、データベースファイルに反映されます。
Google Colaboratoryでストレージのデータベースファイルを扱う
Google Colaboratoryで、直接データベースファイルを扱う方法について説明します。
通常は、DB4SのGUIを使った方が楽ですが、ipynbファイルの一連の実行の途中に、データベースを扱いたいときなどに便利だと思います。
次からJupySQLというライブラリを使いますが、同じようなツールとして、「ipython-sql」というライブラリがあります。
こちらは古いツールで、不具合が多い(テーブル一覧を参照できないなど)ので、ここでは、JupySQLを使っていきます。
JupySQLのインストール
!pip install jupysql duckdb-engine
JupySQLでストレージ(データベース)の内容を確認する
データベース(optuna.db)に接続します。
%load_ext sql
%sql sqlite:///optuna.db
実行結果
Deploy Dash apps for free on Ploomber Cloud! Learn more: https://ploomber.io/s/signup
Connecting to 'sqlite:///optuna.db'
次に、optuna.dbのテーブルを確認します。
%config SqlMagic.displaylimit = 30
%sql select name from sqlite_master where type='table';
実行結果
Running query in 'sqlite:///optuna.db'
name
studies
version_info
study_directions
study_user_attributes
study_system_attributes
trials
trial_user_attributes
trial_system_attributes
trial_params
trial_values
trial_intermediate_values
trial_heartbeats
alembic_version
DB4Sで確認したのと同様に、13個のテーブルが確認できました。
%sql
をつけて、SQL文を実行すれば、DB4Sと同様の操作が可能です。
今回は以上です!