MetaGraphs 加载和保存
MetaGraphs load and save
如何从 LightGraphs 和 MetaGraphs 保存和加载 MetaGraph 对象,以便在加载元图时仍然拥有元数据?
现在我有一个元图 mg
,我使用以下方法保存:
LightGraphs.savegraph("net.lg", mg)
但正在尝试重新加载它:
reloaded = LightGraphs.loadgraph("net.lg")
给我以下内容:
BoundsError: attempt to access 2-element Array{SubString{String},1} at index [3]
是否可以阅读 MetaGaphs 包中的元图?
我们使用 JLD2.jl 提供的 JLD 格式支持 MetaGraphs 持久化:
using LightGraphs, MetaGraphs
julia> g = Graph(10,20)
{10, 20} undirected simple Int64 graph
julia> mg = MetaGraph(g)
{10, 20} undirected Int64 metagraph with Float64 weights defined by :weight (default weight 1.0)
julia> savegraph("foo.mg", mg)
1
julia> mg2 = loadgraph("foo.mg", MGFormat())
{10, 20} undirected Int64 metagraph with Float64 weights defined by :weight (default weight 1.0)
julia> mg2 == mg
true
请注意,您需要在 loadgraph
中指定 MGFormat()
,否则 LightGraphs 将不知道您要加载的图表类型。
如何从 LightGraphs 和 MetaGraphs 保存和加载 MetaGraph 对象,以便在加载元图时仍然拥有元数据?
现在我有一个元图 mg
,我使用以下方法保存:
LightGraphs.savegraph("net.lg", mg)
但正在尝试重新加载它:
reloaded = LightGraphs.loadgraph("net.lg")
给我以下内容:
BoundsError: attempt to access 2-element Array{SubString{String},1} at index [3]
是否可以阅读 MetaGaphs 包中的元图?
我们使用 JLD2.jl 提供的 JLD 格式支持 MetaGraphs 持久化:
using LightGraphs, MetaGraphs
julia> g = Graph(10,20)
{10, 20} undirected simple Int64 graph
julia> mg = MetaGraph(g)
{10, 20} undirected Int64 metagraph with Float64 weights defined by :weight (default weight 1.0)
julia> savegraph("foo.mg", mg)
1
julia> mg2 = loadgraph("foo.mg", MGFormat())
{10, 20} undirected Int64 metagraph with Float64 weights defined by :weight (default weight 1.0)
julia> mg2 == mg
true
请注意,您需要在 loadgraph
中指定 MGFormat()
,否则 LightGraphs 将不知道您要加载的图表类型。