HeatWave AutoML supports the upload of pre-trained models in ONNX,
Open Neural Network Exchange, format to the model catalog.
Load them with the
ML_MODEL_IMPORT
routine. After
import, all the HeatWave AutoML routines can be used with ONNX
models.
Models in ONNX format, .onnx
, cannot be
loaded directly into a MySQL table. They require string
serialization and conversion to Base64 encoding before you use
the ML_MODEL_IMPORT
routine.
HeatWave AutoML supports these types of ONNX model:
An ONNX model that has only one input and it is the entire MySQL table.
An ONNX model that has more than one input and each input is one column in the MySQL table.
For example, HeatWave AutoML does not support an ONNX model that takes more than one input and each input is associated with more than one column in the MySQL table.
The first dimension of the input to the ONNX model provided by
the ONNX model get_inputs()
API should be
the batch size. This should be None
, a
string, or an integer. None
or string
indicate a variable batch size and an integer indicates a
fixed batch size. Examples of input shapes:
[None, 2]
['batch_size', 2, 3]
[1, 14]
All other dimensions should be integers. For example, HeatWave AutoML does not support an input shape similar to the following:
input shape = ['batch_size', 'sequence_length']
The output of an ONNX model is a list of results. The ONNX API documentation defines the results as a numpy array, a list, a dictionary or a sparse tensor. HeatWave AutoML only supports a numpy array, a list, and a dictionary.
-
Numpy array examples:
array(['Iris-virginica', 'Iris-versicolor', 'Iris-versicolor', 'Iris-versicolor'], dtype=object) array([0, 2, 0, 0], dtype=int64) array([[0.8896357 , 0.11036429], [0.28360802, 0.716392 ], [0.9404001 , 0.05959991], [0.5655978 , 0.43440223]], dtype=float32) array([[0.96875435], [1.081366 ], [0.5736201 ], [0.90711355]], dtype=float32)
-
Simple list examples:
['Iris-virginica', 'Iris-versicolor', 'Iris-versicolor', 'Iris-versicolor'] [0, 2, 0, 0]
-
List of lists examples:
[[0.8896357 , 0.110364], [0.28360802, 0.716392], [0.9404001 , 0.059599], [0.5655978 , 0.434402]] [[[0.8896357] , [0.110364]], [[0.28360802], [0.716392]], [[0.9404001] , [0.059599]], [[0.5655978] , [0.434402]]] [[0.968754], [1.081366], [0.573620], [0.907113]] [[[0.968754]], [[1.081366]], [[0.573620]], [[0.907113]]]
-
Dictionary examples:
{'Iris-setosa': 0.0, 'Iris-versicolor': 0.0, 'Iris-virginica': 0.999} {0: 0.1, 1: 0.9}
-
List of dictionaries examples:
[{'Iris-setosa': 0.0, 'Iris-versicolor': 0.0, 'Iris-virginica': 0.999}, {'Iris-setosa': 0.0, 'Iris-versicolor': 0.999, 'Iris-virginica': 0.0}, {'Iris-setosa': 0.0, 'Iris-versicolor': 0.589, 'Iris-virginica': 0.409}, {'Iris-setosa': 0.0, 'Iris-versicolor': 0.809, 'Iris-virginica': 0.190}] [{0: 1.0, 1: 0.0, 2: 0.0}, {0: 0.0, 1: 0.0, 2: 1.0}, {0: 1.0, 1: 0.0, 2: 0.0}, {0: 1.0, 1: 0.0, 2: 0.0}] [{0: 0.176, 1: 0.823}, {0: 0.176, 1: 0.823}, {0: 0.264, 1: 0.735}, {0: 0.875, 1: 0.124}] [{0: 0.176, 1: 0.823}, {0: 0.176, 1: 0.823}, {0: 0.264, 1: 0.735}, {0: 0.875, 1: 0.124}] [{0: 0.176, 1: 0.823}, {0: 0.176, 1: 0.823}, {0: 0.264, 1: 0.735}, {0: 0.875, 1: 0.124}]
For classification and regression tasks, HeatWave AutoML only supports model explainers and scoring for variable batch sizes.
For forecasting, anomaly detection and recommendation tasks, HeatWave AutoML does not support model explainers and scoring. The prediction column must contain a JSON object literal of name value keys. For example, for three outputs:
{output1: value1, output2: value2, output3: value3}