from fawkes.models import NetworkPoisson import numpy as np verbose = False # Make a network model N = 2 T = 10.0 dt_max = 1.00 bias = np.array([1.0, 1.0]) weights = np.array([[0.5, 0.1], [0.1, 0.5]]) mu = 0.0 * np.ones((N,N)) tau = 1.0 * np.ones((N,N)) params = {'lamb': bias, 'weights': weights, 'mu': mu, 'tau': tau} model = NetworkPoisson(N=N, dt_max=dt_max, params=params) data = model.generate_data(T=T) # Generate some parents parents_cython = model.sample_parents_ext(data, bias, weights, mu, tau) parents = parents_cython + 1 # Compute sufficient statistics without Cython stats = model.model.calculate_stats(data, parents, T, dt_max) if verbose: print("M_0={}".format(stats[0])) print("M_m={}".format(stats[1])) print("M_nm={}".format(stats[2])) print("xbar_nm={}".format(stats[3])) print("nu_nm={}\n".format(stats[4])) # Compute sufficient statistics with cython
from fawkes.models import NetworkPoisson import numpy as np import time # Continuous-Time N = 2 T = 1000.0 dt_max = 1.00 bias = np.array([1.0, 1.0]) weights = np.array([[0.5, 0.2], [0.2, 0.5]]) mu = 0.0 * np.ones((N, N)) tau = 1.0 * np.ones((N, N)) params = {'lamb': bias, 'weights': weights, 'mu': mu, 'tau': tau} net = NetworkPoisson(N=N, dt_max=dt_max, params=params) data = net.generate_data(T=T) # Class Gibbs sampling # start = time.time() # sample = net.sample(data, T, size=10) # stop = time.time() # py_time = stop - start # print('elapsed time: {:.3f}\n'.format(py_time)) # # start = time.time() # sample = net.sample_ext(data, T, size=10) # stop = time.time() # cy_time = stop - start # print('elapsed time: {:.3f}'.format(cy_time)) # print('speed-up: {:.2f}\n'.format(py_time / cy_time))