optuna.storages.journal.JournalFileBackend
- class optuna.storages.journal.JournalFileBackend(file_path, lock_obj=None)[source]
用于 Journal 日志后端的 文件存储类。
与 SQLite3 相比,此后端的好处在于它更适合文件系统不支持
fcntl()
文件锁定的环境。例如,如 SQLite3 FAQ 中所述,由于许多 NFS 实现中的fcntl()
文件锁定功能损坏,SQLite3 可能无法在 NFS(网络文件系统)上工作。在这种情况下,此后端提供了多种文件锁定解决方法。有关更多详细信息,请参阅 Medium 博客文章。需要注意的是,与 SQLite3 类似,此类不支持高级别的写入并发性,如 SQLAlchemy 文档中所述。然而,在目标函数计算成本高昂的典型情况下,Optuna 用户无需担心此限制。原因是只要目标函数不过度调用
report()
和set_user_attr()
,写入操作就不会成为瓶颈。- 参数:
file_path (str) – 用于持久化日志的文件路径。
lock_obj (BaseJournalFileLock | None) – 用于进程互斥的锁对象。可以传递
JournalFileSymlinkLock
和JournalFileOpenLock
的实例。
方法
append_logs
(logs)将日志附加到后端。
read_logs
(log_number_from)读取日志编号大于或等于
log_number_from
的日志。