Dear all,

after trying for a few days to resolve this myself, I decided to ask for
help here.

The cookbook example on model evidence for the nested example fails on all
my graphs, but works with the original gt.collection.data["lesmis"] graph.
The code is exactly as in  the cookbook example
<https://graph-tool.skewed.de/static/doc/demos/inference/inference.html#model-class-selection>
 
. The unnested SBM does work with every graph I tried.

Here's the error message, which is triggered in the call to
mcmc_equilibrate().
---

ArgumentError                             Traceback (most recent call last)
<ipython-input-65-403d439ad6c7> in <module>()
     32     # Now we collect the marginal distributions for exactly 200,000
sweeps
     33     gt.mcmc_equilibrate(state, force_niter=10,
mcmc_args=dict(niter=10),
---> 34                         callback=collect_marginals)
     35 
     36     S_mf = [gt.mf_entropy(sl.g, vm[l]) for l, sl in
enumerate(state.get_levels())]

/usr/lib/python2.7/dist-packages/graph_tool/inference/mcmc.pyc in
mcmc_equilibrate(state, wait, nbreaks, max_niter, force_niter, epsilon,
gibbs, block_moves, mcmc_args, entropy_args, history, callback, verbose)
    118     while count < wait:
    119         if not gibbs:
--> 120             delta, nmoves = state.mcmc_sweep(**mcmc_args)
    121         else:
    122             delta, nmoves = state.gibbs_sweep(**mcmc_args)

/usr/lib/python2.7/dist-packages/graph_tool/inference/nested_blockmodel.pyc
in mcmc_sweep(self, **kwargs)
    526             c = [c] + [c * 2 ** l for l in range(1,
len(self.levels))]
    527 
--> 528         return self._h_sweep(lambda s, **a: s.mcmc_sweep(**a), c=c,
**kwargs)
    529 
    530     def gibbs_sweep(self, **kwargs):

/usr/lib/python2.7/dist-packages/graph_tool/inference/nested_blockmodel.pyc
in _h_sweep(self, algo, **kwargs)
    460                             edges_dl=(l + 1 == len(self.levels) -
1))
    461             self.levels[l]._couple_state(self.levels[l + 1],
--> 462                                          get_entropy_args(eargs))
    463             self.levels[l + 1]._state.clear_egroups()
    464             self.levels[l + 1]._state.sync_emat()

/usr/lib/python2.7/dist-packages/graph_tool/inference/blockmodel.pyc in
_couple_state(self, state, entropy_args)
    586             self._state.decouple_state()
    587         else:
--> 588             self._state.couple_state(state._state, entropy_args)
    589 
    590     def get_blocks(self):

ArgumentError: Python argument types in
   
graph_tool::BlockState<boost::UndirectedAdaptor&lt;boost::filtered_graph&lt;boost::adj_list&lt;unsigned
long>,
graph_tool::detail::MaskFilter<boost::unchecked_vector_property_map&lt;unsigned
char, boost::adj_edge_index_property_map&lt;unsigned long> > >,
graph_tool::detail::MaskFilter<boost::unchecked_vector_property_map&lt;unsigned
char, boost::typed_identity_property_map&lt;unsigned long> > > > >,
graph_tool::simple_degs_t, std::integral_constant<bool, true>,
std::integral_constant<bool, true>, boost::any, boost::any, boost::any,
boost::unchecked_vector_property_map<int,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, std::vector<unsigned
long, std::allocator<unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, std::vector<unsigned
long, std::allocator<unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, bool, int,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::typed_identity_property_map&lt;unsigned long> >, double, double,
double, double, double, double,
boost::unchecked_vector_property_map<unsigned char,
boost::typed_identity_property_map<unsigned long> >,
bool>.couple_state(graph_tool::BlockState<boost::UndirectedAdaptor&lt;boost::filtered_graph&lt;boost::adj_list&lt;unsigned
long>,
graph_tool::detail::MaskFilter<boost::unchecked_vector_property_map&lt;unsigned
char, boost::adj_edge_index_property_map&lt;unsigned long> > >,
graph_tool::detail::MaskFilter<boost::unchecked_vector_property_map&lt;unsigned
char, boost::typed_identity_property_map&lt;unsigned long> > > > >,
graph_tool::simple_degs_t, std::integral_constant<bool, true>,
std::integral_constant<bool, true>, boost::any, boost::any, boost::any,
boost::unchecked_vector_property_map<int,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, std::vector<unsigned
long, std::allocator<unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, std::vector<unsigned
long, std::allocator<unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, bool, int,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::typed_identity_property_map&lt;unsigned long> >, double, double,
double, double, double, double,
boost::unchecked_vector_property_map<unsigned char,
boost::typed_identity_property_map<unsigned long> >, bool>,
graph_tool::BlockState<boost::UndirectedAdaptor&lt;boost::adj_list&lt;unsigned
long> >, graph_tool::simple_degs_t, std::integral_constant<bool, true>,
std::integral_constant<bool, true>, boost::any, boost::any, boost::any,
boost::unchecked_vector_property_map<int,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, std::vector<unsigned
long, std::allocator<unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, std::vector<unsigned
long, std::allocator<unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, bool, int,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::typed_identity_property_map&lt;unsigned long> >, double, double,
double, double, double, double,
boost::unchecked_vector_property_map<unsigned char,
boost::typed_identity_property_map<unsigned long> >, bool>, entropy_args)
did not match C++ signature:
   
couple_state(graph_tool::BlockState<boost::UndirectedAdaptor&lt;boost::filtered_graph&lt;boost::adj_list&lt;unsigned
long>,
graph_tool::detail::MaskFilter<boost::unchecked_vector_property_map&lt;unsigned
char, boost::adj_edge_index_property_map&lt;unsigned long> > >,
graph_tool::detail::MaskFilter<boost::unchecked_vector_property_map&lt;unsigned
char, boost::typed_identity_property_map&lt;unsigned long> > > > >,
graph_tool::simple_degs_t, std::integral_constant<bool, true>,
std::integral_constant<bool, true>, boost::any, boost::any, boost::any,
boost::unchecked_vector_property_map<int,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, std::vector<unsigned
long, std::allocator<unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, std::vector<unsigned
long, std::allocator<unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, bool, int,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::typed_identity_property_map&lt;unsigned long> >, double, double,
double, double, double, double,
boost::unchecked_vector_property_map<unsigned char,
boost::typed_identity_property_map<unsigned long> >, bool> {lvalue},
graph_tool::BlockState<boost::UndirectedAdaptor&lt;boost::filtered_graph&lt;boost::adj_list&lt;unsigned
long>,
graph_tool::detail::MaskFilter<boost::unchecked_vector_property_map&lt;unsigned
char, boost::adj_edge_index_property_map&lt;unsigned long> > >,
graph_tool::detail::MaskFilter<boost::unchecked_vector_property_map&lt;unsigned
char, boost::typed_identity_property_map&lt;unsigned long> > > > >,
graph_tool::simple_degs_t, std::integral_constant<bool, true>,
std::integral_constant<bool, true>, boost::any, boost::any, boost::any,
boost::unchecked_vector_property_map<int,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, std::vector<unsigned
long, std::allocator<unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, std::vector<unsigned
long, std::allocator<unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<int,
boost::typed_identity_property_map&lt;unsigned long> >, bool, int,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::adj_edge_index_property_map&lt;unsigned long> >,
boost::unchecked_vector_property_map<double,
boost::typed_identity_property_map&lt;unsigned long> >, double, double,
double, double, double, double,
boost::unchecked_vector_property_map<unsigned char,
boost::typed_identity_property_map<unsigned long> >, bool> {lvalue},
graph_tool::entropy_args_t)


---

It is the same error as user P-M encountered  here
<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#a4026979>
 
, but with the exact code from the example.

Please find the sample graph attached that produced this message: 
m2uterm.gt
<http://main-discussion-list-for-the-graph-tool-project.982480.n3.nabble.com/file/n4027207/m2uterm.gt>
 
.

System information:

Graph-tool: '2.18 (commit 37996a0a, Thu Jul 21 17:56:14 2016 +0200)'
Python: '2.7.10 (default, Oct 14 2015, 16:09:02) \n[GCC 5.2.1 20151010]'
Ubuntu 15.10, 64-bit, AMD A6-5200 APU
Boost: ???

I installed graph-tool using apt-get.

Thanks for your time!

Best regards,
Marnix

ps.: I tried to update graph-tool with apt-get update but I got "Failed to
fetch http://downloads.skewed.de/apt/wily/dists/wily/universe/source/Sources 
404  Not Found" errors...




--
View this message in context: 
http://main-discussion-list-for-the-graph-tool-project.982480.n3.nabble.com/Model-class-selection-cookbook-example-with-nested-SBM-fails-on-custom-graph-tp4027207.html
Sent from the Main discussion list for the graph-tool project mailing list 
archive at Nabble.com.
_______________________________________________
graph-tool mailing list
graph-tool@skewed.de
https://lists.skewed.de/mailman/listinfo/graph-tool

Reply via email to