ONNX_RUN()¶
ONNX_RUN(model, input, input_shape, output_shape) 直接通过 SQL 运行 ONNX 模型,模型以 datalink 或 varbinary 传入,输入与形状描述符以 JSON 字符串传入。
描述¶
ONNX_RUN() 运行一个 ONNX 模型并返回其输出。模型既可以作为指向 .onnx 文件的 DATALINK 传入,也可以作为通过 LOAD_FILE() 加载的原始 VARBINARY 字节传入。
input 参数是构成输入张量的数值 JSON 数组。input_shape 和 output_shape 参数是描述张量维度和数据类型的 JSON 对象,例如 '{"dim":[1,1,4],"dtype":"float32"}'。
支持 float32、float16、int32 和 int8 等输入与输出数据类型。不支持的数据类型、与声明形状不匹配的输入长度,或整数数据类型的越界值都会报错。如果模型或输入为 NULL,结果为 NULL。
语法¶
ONNX_RUN(model, input, input_shape, output_shape)
参数¶
参数 |
说明 |
|---|---|
|
指向 |
|
包含输入张量值的 JSON 数组字符串。 |
|
描述输入维度与数据类型的 JSON 对象,如 |
|
描述输出维度与数据类型的 JSON 对象,或 |
返回值¶
以 JSON 编码值的形式返回模型输出。
示例¶
以下示例传入 NULL 作为模型,因此 ONNX_RUN() 返回 NULL。若要运行真实模型,请传入指向 .onnx 文件的 DATALINK,或传入由 LOAD_FILE() 加载得到的 VARBINARY。
DROP DATABASE IF EXISTS onnx_run_demo;
CREATE DATABASE onnx_run_demo;
USE onnx_run_demo;
SELECT ONNX_RUN(
CAST(NULL AS DATALINK),
'[0.2,0.3,0.6,0.9]',
'{"dim":[1,1,4],"dtype":"float32"}',
'{"dim":[1,1,2],"dtype":"float32"}') AS null_model;
DROP DATABASE onnx_run_demo;