EXPORT_MODELS
导出机器学习模型。Vertica 支持三种模型格式:
-
原生 Vertica (VERTICA_MODELS)
-
PMML
-
TensorFlow
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
EXPORT_MODELS ( 'output-dir', 'export-target' [ USING PARAMETERS category = 'model-category' ] )
参数
-
output-dir
- 用于存储导出模型的输出目录的绝对路径。
-
export-target
- 指定要导出的模型,如下所示:
[schema.]{ model‑name | * }
其中 schema 指定从指定的架构导出模型(可选)。如果忽略,EXPORT_MODELS 使用默认架构。提供
*
(星号)以从架构中导出所有模型。
参数
category
- 要导出的模型类别,为以下之一:
-
VERTICA_MODELS
-
PMML
-
TENSORFLOW
EXPORT_MODELS 根据导出操作的范围导出指定类别的模型,即应用于单个模型,还是应用于架构中的所有模型。请参阅下面的导出范围和类别处理。
下文导出的文件描述了 EXPORT_MODELS 为每个类别导出的文件。
如果忽略此参数,EXPORT_MODELS 将根据模型类型导出模型或指定架构中的模型。
-
特权
超级用户
导出范围和类别处理
EXPORT_MODELS 根据以下参数设置执行:
-
导出操作的范围:单个模型,或给定架构中的所有模型
-
指定或忽略的类别
下表显示了这两个参数如何控制导出过程:
导出的文件
EXPORT_MODELS 为每个模型类别导出以下文件:
类别和兼容模型
如果 EXPORT_MODELS 指定单个模型并且还设置了 category
参数,则如果模型类型和类别兼容,则函数成功;否则,它会返回错误:
如果 EXPORT_MODELS 指定从架构中导出所有模型并设置类别,它会针对与该类别不兼容的每个模型发出警告消息。该函数随后继续处理该架构中的剩余模型。
EXPORT_MODELS 在
output-dir/export_log.json
中记录所有错误和警告。
示例
导出模型而不更改其类别:
-
导出模型
myschema.mykmeansmodel
而不更改其类别:=> SELECT EXPORT_MODELS ('/home/dbadmin', 'myschema.mykmeansmodel'); EXPORT_MODELS ---------------- Success (1 row)
-
导出架构
myschema
中的所有模型而不更改其类别:=> SELECT EXPORT_MODELS ('/home/dbadmin', 'myschema.*'); EXPORT_MODELS ---------------- Success (1 row)
导出与指定类别兼容的模型:
注意
当您导入在不同版本的 Vertica 中训练的 VERTICA_MODELS 类别模型时,Vertica 会自动升级模型版本以匹配数据库的版本。如果失败,您必须运行 UPGRADE_MODEL。
如果两种方法都失败,则该模型不能用于数据库内评分,也不能导出为 PMML 模型。
-
类别设置为 PMML。PMML 和 VERTICA_MODELS 类型的模型与 PMML 类别兼容,因此如果
my_keans
属于任一类型,则导出操作成功:=> SELECT EXPORT_MODELS ('/tmp/', 'my_kmeans' USING PARAMETERS category='PMML');
-
类别设置为 VERTICA_MODELS。只有 VERTICA_MODELS 类型的模型与 VERTICA_MODELS 类别兼容,因此只有当
my_keans
属于该类型时,导出操作才会成功:=> SELECT EXPORT_MODELS ('/tmp/', 'public.my_kmeans' USING PARAMETERS category='VERTICA_MODELS');
-
类别设置为 TENSORFLOW。只有 TensorFlow 类型的模型与 TENSORFLOW 类别兼容,因此模型
tf_mnist_keras
必须为 TensorFlow 类型:=> SELECT EXPORT_MODELS ('/tmp/', 'tf_mnist_keras', USING PARAMETERS category='TENSORFLOW'); export_models --------------- Success (1 row)
导出 TensorFlow 模型 tf_mnist_keras 后,列出导出的文件:
$ ls tf_mnist_keras/
crc.json metadata.json mnist_keras.pb model.json tf_model_desc.json