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
Ejemplo n.º 2
0
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))