如何在Python中保存并重新加载PM4Py生成的Petri网模型?
PM4Py中Petri网模型的保存与重加载方案
方案1:使用PM4Py原生PNML读写接口
PM4Py支持Petri网标准格式PNML的读写,能完整保存模型结构、初始标记和最终标记,步骤如下:
保存模型:
import pm4py # 假设已通过Inductive Miner得到petri_net, initial_marking, final_marking pm4py.write_petri_net(petri_net, initial_marking, final_marking, "my_petri_model.pnml")加载模型:
petri_net, initial_marking, final_marking = pm4py.read_petri_net("my_petri_model.pnml")
PNML是跨工具兼容的格式,适合后续和其他Petri网分析工具交互。
方案2:用Python Pickle序列化
如果只需要在Python环境内复用模型,Pickle序列化是更轻量的选择:
保存模型:
import pickle # 将模型相关对象打包保存 with open("petri_model.pkl", "wb") as f: pickle.dump((petri_net, initial_marking, final_marking), f)加载模型:
with open("petri_model.pkl", "rb") as f: petri_net, initial_marking, final_marking = pickle.load(f)
关键提示
无论用哪种方法,必须同时保存和加载初始标记与最终标记,否则模型无法正确还原日志对应的行为逻辑。
内容的提问来源于stack exchange,提问作者Aviv Gerasi
相关产品推荐
相关产品推荐

