optuna.storages.journal.JournalFileBackend
- class optuna.storages.journal.JournalFileBackend(file_path, lock_obj=None)[source]
Journal ログのファイルストレージクラス。
SQLite3と比較して、このバックエンドの利点は、ファイルシステムが
fcntl()
ファイルロックをサポートしていない環境により適していることです。 例えば、 SQLite3 FAQ に記載されているように、 SQLite3は多くのNFS実装でfcntl()
ファイルロックが機能しないため、NFS(Network File System)では動作しない可能性があります。このような場合、このバックエンドはファイルロックのためのいくつかの回避策を提供します。詳細については、 Mediumブログ投稿 を参照してください。SQLite3と同様に、このクラスも SQLAlchemyドキュメント で説明されているように、高い書き込み同時実行性をサポートしていないことに注意が必要です。ただし、目的関数が計算コストが高い場合、Optunaユーザーはこの制限を気にする必要はありません。なぜなら、目的関数が
report()
とset_user_attr()
を過度に呼び出さない限り、書き込み操作がボトルネックにならないからです。- Parameters:
file_path (str) – ログを永続化するファイルのパス。
lock_obj (BaseJournalFileLock | None) – プロセス排他制御のためのロックオブジェクト。
JournalFileSymlinkLock
とJournalFileOpenLock
のインスタンスを渡すことができます。
メソッド
append_logs
(logs)Append logs to the backend.
read_logs
(log_number_from)Read logs with a log number greater than or equal to
log_number_from
.