私は Python グラフ ツール ライブラリを使用して、グラフでいくつかの推論を行っています。API といくつかの例を示す以下のリンクを参照していました。 https://graph-tool.skewed.de/static/doc/inference.html#graph_tool.inference.BlockState
私のコードは次のように書かれています。ここで、g は前のステップで定義された有向のエッジ加重グラフです。
g.save(graph_file_name)
g = graph_tool.load_graph(file_name)
state = BlockState(g, B=276, deg_corr = True)
pv = None
state.mcmc_sweep(niter=1000)
for i in range(1000):
ds, nmoves = state.mcmc_sweep(niter=10)
pv = state.collect_vertex_marginals(pv)
pv = state.collect_vertex_marginals(pv)
print mf_entropy(g, pv)
graph_draw(g)
API によると、BlockState コンストラクターは、関数 ch を collect_vertex_marginals および mcmc_sweep() として持つ BlockState obj を返す必要があります。ただし、次のエラーが表示されます。
AttributeError: 'BlockState' object has no attribute 'mcmc_sweep'
私は単に何かを見落としていますか?バージョンの問題 (古い API など) は見当たらないので、少し戸惑っています。ありがとう!