将模型存储在磁盘上

此功能在 Aura Graph Analytics 中不可用。

模型目录仅在 Neo4j 实例运行时存在。当 Neo4j 重启时,模型将不再存在于目录中,需要重新训练。通过将模型存储到磁盘可以避免这种情况。

存储模型的位置可以通过 neo4j.conf 中的配置参数 gds.model.store_location 进行配置。该位置必须是一个目录,且 Neo4j 进程必须对其具有写入权限。

必须配置 gds.model.store_location 参数才能使用此功能。

将目录中的模型存储到磁盘

可存储的模型

语法

从目录存储模型
CALL gds.model.store(
    modelName: String,
    failIfUnsupported: Boolean
)
YIELD
    modelName: String,
    storeMillis: Integer
表 1. 参数
名称 类型 默认 可选 描述

modelName

字符串

不适用

模型的名称。

failIfUnsupported

布尔值

true

默认情况下,当尝试存储不支持的模型时,库将抛出错误。当设置为 false 时,该过程将返回空结果。

表 2. 结果
名称 类型 描述

modelName

字符串

已存储模型的名称。

storeMillis

整数

存储模型所耗费的毫秒数。

示例

将模型存储到磁盘
CALL gds.model.store('my-model')
YIELD
  modelName,
  storeMillis

从磁盘加载模型

此功能在 Aura Graph Analytics 中不可用。

GDS 将在数据库启动时从配置的存储位置发现可用模型。在发现过程中,仅加载模型元数据,而不加载实际的模型数据。为了使用存储的模型,必须显式地加载它。

语法

从磁盘加载模型
CALL gds.model.load(modelName: String)
YIELD
    modelName: String,
    loadMillis: Integer
表 3. 参数
名称 类型 默认 可选 描述

modelName

字符串

不适用

模型的名称。

表 4. 结果
名称 类型 描述

modelName

字符串

已加载模型的名称。

loadMillis

整数

加载模型所耗费的毫秒数。

示例

从磁盘加载模型
CALL gds.model.load('my-model')
YIELD
  modelName,
  loadMillis

要验证模型是否已加载,我们可以使用 gds.model.list 过程。该过程返回标志,以指示模型是否已存储以及模型是否已加载到内存中。该操作是幂等的,如果模型已经加载,则会跳过加载。

从磁盘删除模型

此功能在 Aura Graph Analytics 中不可用。

要从磁盘中删除已存储的模型,必须将其删除。这与丢弃(dropping)模型不同。丢弃模型会将其从内存中的模型目录中移除,但不会从磁盘中移除。删除模型会将其从磁盘中移除,但如果该模型已加载,则会将其保留在内存中的模型目录中。

语法

从磁盘删除已存储的模型
CALL gds.model.delete(modelName: String)
YIELD
    modelName: String,
    deleteMillis: Integer
表 5. 参数
名称 类型 默认 可选 描述

modelName

字符串

不适用

模型的名称。

表 6. 结果
名称 类型 描述

modelName

字符串

已加载模型的名称。

deleteMillis

整数

删除模型所耗费的毫秒数。

示例

从磁盘删除模型
CALL gds.model.delete('my-model')
YIELD
  modelName,
  deleteMillis

来自旧版 GDS 的模型

在 GDS 2.4 之前,节点分类和链路预测模型仅在通过逻辑回归(Logistic Regression)训练器方法训练时才能被存储。

来自旧版 GDS 的任何存储模型都可以在最新的 GDS 版本中加载。