optuna.storages.journal.JournalFileBackend

class optuna.storages.journal.JournalFileBackend(file_path, lock_obj=None)[源码]

Journal 日志后端的文件存储类。

与 SQLite3 相比,此后端的优势在于它更适合文件系统不支持 fcntl() 文件锁的环境。例如,如 SQLite3 FAQ 中所述,由于许多 NFS 实现中 fcntl() 文件锁存在问题,SQLite3 可能无法在 NFS (网络文件系统) 上运行。在这种情况下,此后端提供了几种文件锁定的变通方法。有关更多详细信息,请参阅 Medium 博客文章

需要注意的是,与 SQLite3 类似,此类不支持高级别的写入并发,如 SQLAlchemy 文档中所述。但是,在目标函数计算成本高昂的典型情况下,Optuna 用户不必担心此限制。原因是,只要目标函数不过度调用 report()set_user_attr(),写入操作就不会成为瓶颈。

参数:

方法

append_logs(logs)

将日志追加到后端。

read_logs(log_number_from)

读取日志编号大于或等于 log_number_from 的日志。

append_logs(logs)[源码]

将日志追加到后端。

参数:

logs (list[dict[str, Any]]) – 包含 JSON 可序列化日志的列表。

返回类型:

read_logs(log_number_from)[源码]

读取日志编号大于或等于 log_number_from 的日志。

如果 log_number_from 为 0,则读取所有日志。

参数:

log_number_from (int) – 一个非负整数,表示要读取的日志。

返回:

日志编号大于或等于 log_number_from 的日志。

返回类型:

Generator[dict[str, Any], None, None]