ONNX export of a PCA
![]() | Download Python samples A Zip archive containing all samples can be found here: Samples of ONNX export |
PCA with 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())
According to our level of knowledge, only Scikit-learn with skl2onnx is currently capable of converting a PCA to ONNX. For this reason, the description is limited to that.
