Serialization
All the relevant objects (graphs, factors, Bayesian networks, etc) can be saved/loaded using the pickle format.
These objects can be saved using directly pickle.dump and pickle.load. For example:
>>> import pickle
>>> from pybnesian import Dag
>>> g = Dag(["a", "b", "c", "d"], [("a", "b")])
>>> with open("saved_graph.pickle", "wb") as f:
... pickle.dump(g, f)
>>> with open("saved_graph.pickle", "rb") as f:
... lg = pickle.load(f)
>>> assert lg.nodes() == ["a", "b", "c", "d"]
>>> assert lg.arcs() == [("a", "b")]
We can reduce some boilerplate code using the save methods: Factor.save(),
UndirectedGraph.save(),
DirectedGraph.save(),
BayesianNetworkBase.save(), etc… Also, the load
can load any saved object:
>>> import pickle
>>> from pybnesian import load, Dag
>>> g = Dag(["a", "b", "c", "d"], [("a", "b")])
>>> g.save("saved_graph")
>>> lg = load("saved_graph.pickle")
>>> assert lg.nodes() == ["a", "b", "c", "d"]
>>> assert lg.arcs() == [("a", "b")]
- pybnesian.load(filename: str) object
Load the saved object (a
Factor, a graph, aBayesianNetworkBase, etc…) infilename.- Parameters:
filename – File name.
- Returns:
The object saved in the file.