将模型存储到磁盘

只要 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

字符串

n/a

模型的名称。

failIfUnsupported

布尔值

true

默认情况下,如果尝试存储不受支持的模型,库将引发错误。如果设置为 `false`,则过程返回空结果。

表 2. 结果
名称 类型 描述

modelName

字符串

存储模型的名称。

storeMillis

整数

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

示例

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

从磁盘加载模型

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

语法

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

modelName

字符串

n/a

模型的名称。

表 4. 结果
名称 类型 描述

modelName

字符串

加载模型的名称。

loadMillis

整数

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

示例

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

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

从磁盘删除模型

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

语法

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

modelName

字符串

n/a

模型的名称。

表 6. 结果
名称 类型 描述

modelName

字符串

加载模型的名称。

deleteMillis

整数

删除模型花费的毫秒数。

示例

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

来自较旧 GDS 版本的模型

在 GDS 2.4 之前,节点分类和链接预测模型只能在使用逻辑回归训练器方法训练时存储。

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