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(),写入操作就不会成为瓶颈。

参数

方法

append_logs(logs)

将日志附加到后端。

read_logs(log_number_from)

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

append_logs(logs)[source]

将日志附加到后端。

参数

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

返回类型

None

read_logs(log_number_from)[source]

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

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

参数

log_number_from (int) – 一个非负整数值,指示要读取哪些日志。

返回值

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

返回类型

list[dict[str, Any]]