Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
self.set_start_state(start_state)
types = [(var_name, "int") for var_name in self.variables]
sampled = np.zeros(size, dtype=types).view(np.recarray)
sampled[0] = tuple([st for var, st in self.state])
for i in tqdm(range(size - 1)):
for j, (var, st) in enumerate(self.state):
other_st = tuple(st for v, st in self.state if var != v)
next_st = sample_discrete(
list(range(self.cardinalities[var])),
self.transition_models[var][other_st],
)[0]
self.state[j] = State(var, next_st)
sampled[i + 1] = tuple([st for var, st in self.state])
return _return_samples(return_type, sampled)
pbar = tqdm(self.topological_order)
for node in pbar:
pbar.set_description("Generating for node: {node}".format(node=node))
cpd = self.model.get_cpds(node)
states = range(self.cardinality[node])
evidence = cpd.variables[:0:-1]
if evidence:
cached_values = self.pre_compute_reduce(variable=node)
evidence = np.vstack([sampled[i] for i in evidence])
weights = list(map(lambda t: cached_values[tuple(t)], evidence.T))
else:
weights = cpd.values
sampled[node] = sample_discrete(states, weights, size)
return _return_samples(return_type, sampled)
samples[0] = tuple(initial_pos)
position_m = initial_pos
for i in tqdm(range(1, num_samples)):
position_m, alpha, n_alpha = self._sample(position_m, stepsize)
samples[i] = tuple(position_m)
if i <= num_adapt:
stepsize, stepsize_bar, h_bar = self._adapt_params(
stepsize, stepsize_bar, h_bar, mu, i, alpha, n_alpha
)
else:
stepsize = stepsize_bar
return _return_samples(return_type, samples)
pbar = tqdm(total=size)
while i < size:
_size = int(((size - i) / prob) * 1.5)
_sampled = self.forward_sample(_size, "recarray")
for evid in evidence:
_sampled = _sampled[_sampled[evid[0]] == evid[1]]
prob = max(len(_sampled) / _size, 0.01)
sampled = np.append(sampled, _sampled)[:size]
i += len(_sampled)
pbar.update(len(_sampled))
pbar.close()
return _return_samples(return_type, sampled)
# Reason for this is unknown
samples[0] = tuple(initial_pos)
position_m = initial_pos
lsteps = int(max(1, round(trajectory_length / stepsize, 0)))
for i in tqdm(range(1, num_samples)):
# Genrating sample
position_m, _ = self._sample(
position_m, trajectory_length, stepsize, lsteps
)
samples[i] = tuple(position_m)
self.acceptance_rate = self.accepted_proposals / num_samples
return _return_samples(return_type, samples)
)
if node in evidence_dict:
sampled[node] = evidence_dict[node]
for i in range(size):
sampled["_weight"][i] *= weights[i][evidence_dict[node]]
else:
sampled[node] = sample_discrete(states, weights)
else:
if node in evidence_dict:
sampled[node] = evidence_dict[node]
for i in range(size):
sampled["_weight"][i] *= cpd.values[evidence_dict[node]]
else:
sampled[node] = sample_discrete(states, cpd.values, size)
return _return_samples(return_type, sampled)