issues with the multicanonical sampler
hello, I'm running graph-tool on ubuntu 20, with graph-tool 2.37 installed from the package manager, and Python 3.8.5.
I'm writing to report several issues with the multicanonical sampler.
First with the NestedBlockState:
g = gt.collection.data["celegansneural"]
state = gt.NestedBlockState(g)
nbins=100
S0 = state.entropy()
Smin,Smax = S0*0.90,S0*1.1
ms= gt.MulticanonicalState(state,Smin,Smax, nbins=nbins)
gt.multicanonical_equilibrate(ms)
Will return:
/usr/lib/python3/dist-packages/graph_tool/inference/mcmc.py in sweep(self, **kwargs)
426
427 def sweep(self, **kwargs):
--> 428 self._state.multicanonical_sweep(self, **kwargs)
429
430 def get_energies(self):
TypeError: multicanonical_sweep() takes 1 positional argument but 2 were given
Then with BlockState:
state = gt.BlockState(g)
nbins=100
S0 = state.entropy()
Smin,Smax = S0*0.90,S0*1.1
ms= gt.MulticanonicalState(state,Smin,Smax, nbins=nbins)
gt.multicanonical_equilibrate(ms) #THIS IS OK
ds,nattempts,nmoves = state.multicanonical_sweep(ms,niter=10 )
The last line fails with the following output:
/usr/lib/python3/dist-packages/graph_tool/inference/blockmodel.py in
_multicanonical_sweep_dispatch(self, multicanonical_state)
1702 _get_rng())
1703 else:
-> 1704 return libinference.multicanonical_sweep(multicanonical_state,
1705 self._state, _get_rng())
1706
TypeError: No registered converter was able to extract a C++ reference to type boost::any
from this Python object of type NoneType
Thanks for this wonderful module!