ONNX-Export einer PCA

ONNX-Export einer PCA 1:

Download Python Samples

Ein Zip-Archiv mit allen Samples finden Sie hier: Beispiele zum ONNX-Export

PCA mit Scikit-learn

import numpy as np
from sklearn.decomposition import PCA
from skl2onnx import convert_sklearn
from skl2onnx.common.data_types import FloatTensorType, Int64TensorType

#Generate imput data_types
rng = np.random.RandomState(1)
X = np.dot(rng.rand(4, 3), rng.randn(3, 300)).T

# Dimensionality reduction with PCA 
pca = PCA(n_components=2)
pca.fit(X)
X_pca = pca.transform(X)
print("original shape:   ", X.shape)
print("transformed shape:", X_pca.shape)

#Convert model to ONNX
initial_type = [('float_input', FloatTensorType([None, X.shape[1]]))]
model_onnx = convert_sklearn(pca, initial_types=initial_type)
meta =  model_onnx.metadata_props.add()
with open("pca.onnx", "wb") as f:
    f.write( model_onnx.SerializeToString())

Nach unserem Kenntnisstand ist aktuell nur Scikit-learn mit skl2onnx in der Lage eine PCA in ONNX zu konvertieren. Aus diesem Grund beschränkt sich die Beschreibung darauf.

ONNX-Export einer PCA 2: