Dear all,

Thanks and apologies in advance if this is something silly on my part. I can 
blockmodel this dataset using a vector of covariates (two int32’s) without 
hierarchy no problem, but when I try to add hierarchy, I get an error 
reproducible on two different platforms (OS X and ubuntu, one without OpenMP 
support, one with; one from within an ipython notebook, one from without; both 
Python 2.7.12):

RuntimeError                              Traceback (most recent call last)
<ipython-input-441-ae6b18f3b139> in <module>()
      1 # infer hierarchical blockmodel with edge covariates
----> 2 get_ipython().magic(u'time hbm_edgecovariates = 
gt.inference.minimize_nested_blockmodel_dl(g, deg_corr=False, layers=True, 
state_args=dict(ec=g.ep.weight, layers=False))')

//anaconda/envs/geopandas_test_env/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc
 in magic(self, arg_s)
   2156         magic_name, _, magic_arg_s = arg_s.partition(' ')
   2157         magic_name = magic_name.lstrip(prefilter.ESC_MAGIC)
-> 2158         return self.run_line_magic(magic_name, magic_arg_s)
   2159 
   2160     
#-------------------------------------------------------------------------

//anaconda/envs/geopandas_test_env/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc
 in run_line_magic(self, magic_name, line)
   2077                 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
   2078             with self.builtin_trap:
-> 2079                 result = fn(*args,**kwargs)
   2080             return result
   2081 

<decorator-gen-59> in time(self, line, cell, local_ns)

//anaconda/envs/geopandas_test_env/lib/python2.7/site-packages/IPython/core/magic.pyc
 in <lambda>(f, *a, **k)
    186     # but it's overkill for just that one bit of state.
    187     def magic_deco(arg):
--> 188         call = lambda f, *a, **k: f(*a, **k)
    189 
    190         if callable(arg):

//anaconda/envs/geopandas_test_env/lib/python2.7/site-packages/IPython/core/magics/execution.pyc
 in time(self, line, cell, local_ns)
   1178         else:
   1179             st = clock2()
-> 1180             exec(code, glob, local_ns)
   1181             end = clock2()
   1182             out = None

<timed exec> in <module>()

/usr/local/lib/python2.7/site-packages/graph_tool/inference/minimize.pyc in 
minimize_nested_blockmodel_dl(g, B_min, B_max, b_min, b_max, Bs, bs, deg_corr, 
overlap, nonoverlap_init, layers, hierarchy_minimize_args, state_args, 
bisection_args, mcmc_args, anneal_args, mcmc_equilibrate_args, shrink_args, 
mcmc_multilevel_args, verbose)
    513                        verbose=verbose,
    514                        **dmask(hierarchy_minimize_args,
--> 515                                ["B_max", "B_min", "bisection_args", 
"verbose"]))
    516 
    517     return state

/usr/local/lib/python2.7/site-packages/graph_tool/inference/nested_blockmodel.pyc
 in hierarchy_minimize(state, B_min, B_max, b_min, b_max, frozen_levels, 
sparse_thres, bisection_args, verbose)
    749                 bstate = state.find_new_level(l, 
bisection_args=bisection_args,
    750                                               B_min=B_min, B_max=B_max,
--> 751                                               b_min=b_min, b_max=b_max)
    752             else:
    753                 bstate = state.find_new_level(l, 
bisection_args=bisection_args)

/usr/local/lib/python2.7/site-packages/graph_tool/inference/nested_blockmodel.pyc
 in find_new_level(self, l, sparse_thres, bisection_args, B_min, B_max, b_min, 
b_max)
    482 
    483         # find new state
--> 484         state = bisection_minimize([min_state, max_state], 
**bisection_args)
    485 
    486         if _bm_test():

/usr/local/lib/python2.7/site-packages/graph_tool/inference/bisection.pyc in 
bisection_minimize(init_states, random_bisection, mcmc_multilevel_args, 
extra_entropy_args, verbose)
    139     for state in init_states:
    140         b_cache[state.B] = (get_ent(state, mcmc_multilevel_args,
--> 141                                     extra_entropy_args),
    142                             state.copy())
    143 

/usr/local/lib/python2.7/site-packages/graph_tool/inference/bisection.pyc in 
get_ent(state, mcmc_multilevel_args, extra_entropy_args)
     68     mcmc_args = mcmc_equilibrate_args.get("mcmc_args", {})
     69     entropy_args = mcmc_args.get("entropy_args", {})
---> 70     S = state.entropy(**dict(entropy_args, **extra_entropy_args))
     71     return S
     72 

/usr/local/lib/python2.7/site-packages/graph_tool/inference/layered_blockmodel.pyc
 in entropy(self, adjacency, dl, partition_dl, degree_dl, degree_dl_kind, 
edges_dl, dense, multigraph, deg_entropy, exact, **kwargs)
    616                                dense=dense, multigraph=multigraph,
    617                                deg_entropy=deg_entropy, exact=exact,
--> 618                                **dict(kwargs, test=False))
    619 
    620         if dl and edges_dl:

/usr/local/lib/python2.7/site-packages/graph_tool/inference/blockmodel.pyc in 
entropy(self, adjacency, dl, partition_dl, degree_dl, degree_dl_kind, edges_dl, 
dense, multigraph, deg_entropy, exact, **kwargs)
    845         callback = kwargs.pop("callback", None)
    846         if callback is not None:
--> 847             S += callback(self)
    848 
    849         if kwargs.pop("test", True) and _bm_test():

/usr/local/lib/python2.7/site-packages/graph_tool/inference/nested_blockmodel.pyc
 in <lambda>(s)
    431                                 callback=lambda s: get_edges_dl(s,
    432                                                                 
self.hstate_args,
--> 433                                                                 
self.hentropy_args))
    434         mcmc_args = dict(mcmc_args, entropy_args=entropy_args,
    435                          
disable_callback_test=isinstance(self.levels[0],

/usr/local/lib/python2.7/site-packages/graph_tool/inference/nested_blockmodel.pyc
 in get_edges_dl(state, hstate_args, hentropy_args)
     38     bstate = state.get_block_state(b=bclabel, **hstate_args)
     39     return bstate.entropy(**dict(hentropy_args, dl=True, edges_dl=False,
---> 40                                  multigraph=True))
     41 
     42 

/usr/local/lib/python2.7/site-packages/graph_tool/inference/layered_blockmodel.pyc
 in entropy(self, adjacency, dl, partition_dl, degree_dl, degree_dl_kind, 
edges_dl, dense, multigraph, deg_entropy, exact, **kwargs)
    628 
    629         if dl:
--> 630             S += self.__get_layer_entropy()
    631 
    632         if _bm_test() and kwargs.get("test", True):

/usr/local/lib/python2.7/site-packages/graph_tool/inference/layered_blockmodel.pyc
 in __get_layer_entropy(self)
    590                 be = group_vector_property([ec, ec])
    591                 lstate = OverlapBlockState(g, b=be, deg_corr=False)
--> 592                 self.__layer_entropy = lstate.entropy(dl=True, 
edges_dl=False) - \
    593                                        lstate.entropy(dl=False)
    594             else:

/usr/local/lib/python2.7/site-packages/graph_tool/inference/overlap_blockmodel.pyc
 in entropy(self, adjacency, dl, partition_dl, degree_dl, degree_dl_kind, 
edges_dl, dense, multigraph, deg_entropy, exact, **kwargs)
    581                                   multigraph=multigraph,
    582                                   deg_entropy=deg_entropy, exact=exact,
--> 583                                   **kwargs)
    584 
    585 

/usr/local/lib/python2.7/site-packages/graph_tool/inference/blockmodel.pyc in 
entropy(self, adjacency, dl, partition_dl, degree_dl, degree_dl_kind, edges_dl, 
dense, multigraph, deg_entropy, exact, **kwargs)
    824         if dl:
    825             if partition_dl:
--> 826                 S += self._state.get_partition_dl()
    827 
    828             if edges_dl:

RuntimeError: Error in function boost::math::lgamma<double>(double): numeric 
overflow

   
_______________________________________________
graph-tool mailing list
[email protected]
https://lists.skewed.de/mailman/listinfo/graph-tool

Reply via email to