Note
Go to the end to download the full example code.
Export a metamodel¶
In this example we will see how to export a metamodel from the context it is created to another context where it will actually be used with the help of the pickle module.
import openturns as ot
from openturns.usecases import cantilever_beam
import pickle
Load the cantilever beam use-case. We want to use the independent distribution to get meaningful Sobol’ indices.
beam = cantilever_beam.CantileverBeam()
g = beam.model
distribution = beam.independentDistribution
Generate a learning sample with Monte-Carlo simulation (or retrieve the design from experimental data).
ot.RandomGenerator.SetSeed(0)
N = 30 # size of the experimental design
X = distribution.getSample(N)
Y = g(X)
Build a chaos metamodel
algo = ot.FunctionalChaosAlgorithm(X, Y, distribution)
algo.run()
assert algo.getResult().getResiduals()[0] < 1e-12
metamodel = algo.getResult().getMetaModel()
Save the metamodel into a .pkl file for later use
with open("metamodel.pkl", "wb") as f:
pickle.dump(metamodel, f)
Reload the metamodel in another context from the same .pkl
with open("metamodel.pkl", "rb") as f:
metamodel = pickle.load(f)
Reuse the loaded metamodel
x = [6.70455e10, 300.0, 2.55, 1.45385e-07]
y = metamodel(x)
print(y)
[0.170031]