2017-01-27 13 views
0

Я пытаюсь реплицировать часть кода из поваренной книги графического инструмента, чтобы найти предельную вероятность числа групп в графе при использовании иерархического разбиения. Я, однако, получаю сообщение об ошибке 'NestedBlockState' object has no attribute 'get_nonempty_B', так что, предположительно, я где-то ошибся. Кто-нибудь знает, где я ошибся?graph-tool - Объект 'NestedBlockState' не имеет атрибута 'get_nonempty_B'

import graph_tool.all as gt 
import cPickle as pickle 

g = gt.load_graph('graph_no_multi_reac_type.gt') 
gt.remove_parallel_edges(g) 

state = gt.minimize_nested_blockmodel_dl(g, deg_corr=True) 

state = state.copy(sampling=True) 
with open('state_mcmc.pkl','wb') as state_pkl: 
    pickle.dump(state,state_pkl,-1) 

print 'equilibrating Markov chain' 
gt.mcmc_equilibrate(state, wait=1000, mcmc_args=dict(niter=10)) 

h = np.zeros(g.num_vertices() + 1) 

def collect_num_groups(s): 
    B = s.get_nonempty_B() 
    h[B] += 1 

print 'colleting marginals' 
gt.mcmc_equilibrate(state, force_niter=10000, mcmc_args=dict(niter=10), 
       callback=collect_num_groups) 
with open('state_ncnc.pkl','wb') as state_pkl: 
    pickle.dump(state,state_pkl,-1) 

with open('hist.pkl','wb') as h_pkl: 
    pickle.dump(h,h_pkl,-1) 

Я получаю ошибку выглядит следующим образом:

Traceback (most recent call last): 
    File "num_groups_marg_prob.py", line 42, in <module> 
     gt.mcmc_equilibrate(state, force_niter=10000, mcmc_args=dict(niter=10), 
    File "/usr/lib/python2.7/dist-packages/graph_tool/inference/mcmc.py", line 172, in mcmc_equilibrate 
     extra = callback(state) 
    File "num_groups_marg_prob.py", line 35, in collect_num_groups 
     def collect_num_groups(s): 
AttributeError: 'NestedBlockState' object has no attribute 'get_nonempty_B' 

ответ

0

Цитируя ответа от граф-инструментов списка рассылки:.

«Сообщение об ошибке ясно Этот атрибут принадлежит BlockState ., не NestedBlockState Что вы хотите сделать, это:

s.levels[0].get_nonempty_B() 

"

http://main-discussion-list-for-the-graph-tool-project.982480.n3.nabble.com/self-state-couple-state-state-state-entropy-args-Python-argument-types-did-not-match-C-signature-td4026975.html