pymc3/step_methods/hmc/base_hmc.py
Killed 31 out of 73 mutantsSurvived
Survived mutation testing. These mutants show holes in your test suite.Mutant 301
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -26,7 +26,7 @@
from pymc3.backends.report import SamplerWarning, WarningType
from pymc3.exceptions import SamplingError
-logger = logging.getLogger("pymc3")
+logger = logging.getLogger("XXpymc3XX")
HMCStepData = namedtuple("HMCStepData", "end, accept_stat, divergence_info, stats")
Mutant 302
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -26,7 +26,7 @@
from pymc3.backends.report import SamplerWarning, WarningType
from pymc3.exceptions import SamplingError
-logger = logging.getLogger("pymc3")
+logger = None
HMCStepData = namedtuple("HMCStepData", "end, accept_stat, divergence_info, stats")
Mutant 303
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -28,7 +28,7 @@
logger = logging.getLogger("pymc3")
-HMCStepData = namedtuple("HMCStepData", "end, accept_stat, divergence_info, stats")
+HMCStepData = namedtuple("XXHMCStepDataXX", "end, accept_stat, divergence_info, stats")
DivergenceInfo = namedtuple("DivergenceInfo", "message, exec_info, state")
Mutant 306
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -31,7 +31,7 @@
HMCStepData = namedtuple("HMCStepData", "end, accept_stat, divergence_info, stats")
-DivergenceInfo = namedtuple("DivergenceInfo", "message, exec_info, state")
+DivergenceInfo = namedtuple("XXDivergenceInfoXX", "message, exec_info, state")
class BaseHMC(arraystep.GradientSharedStep):
"""Superclass to implement Hamiltonian/hybrid monte carlo."""
Mutant 309
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -36,7 +36,7 @@
class BaseHMC(arraystep.GradientSharedStep):
"""Superclass to implement Hamiltonian/hybrid monte carlo."""
- default_blocked = True
+ default_blocked = False
def __init__(
self,
Mutant 310
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -36,7 +36,7 @@
class BaseHMC(arraystep.GradientSharedStep):
"""Superclass to implement Hamiltonian/hybrid monte carlo."""
- default_blocked = True
+ default_blocked = None
def __init__(
self,
Mutant 315
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -85,7 +85,7 @@
super().__init__(vars, blocked=blocked, model=model, dtype=dtype, **theano_kwargs)
- self.adapt_step_size = adapt_step_size
+ self.adapt_step_size = None
self.Emax = Emax
self.iter_count = 0
size = self._logp_dlogp_func.size
Mutant 317
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -87,7 +87,7 @@
self.adapt_step_size = adapt_step_size
self.Emax = Emax
- self.iter_count = 0
+ self.iter_count = 1
size = self._logp_dlogp_func.size
self.step_size = step_scale / (size ** 0.25)
Mutant 320
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -90,7 +90,7 @@
self.iter_count = 0
size = self._logp_dlogp_func.size
- self.step_size = step_scale / (size ** 0.25)
+ self.step_size = step_scale * (size ** 0.25)
self.step_adapt = step_sizes.DualAverageAdaptation(
self.step_size, target_accept, gamma, k, t0
)
Mutant 321
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -90,7 +90,7 @@
self.iter_count = 0
size = self._logp_dlogp_func.size
- self.step_size = step_scale / (size ** 0.25)
+ self.step_size = step_scale / (size * 0.25)
self.step_adapt = step_sizes.DualAverageAdaptation(
self.step_size, target_accept, gamma, k, t0
)
Mutant 322
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -90,7 +90,7 @@
self.iter_count = 0
size = self._logp_dlogp_func.size
- self.step_size = step_scale / (size ** 0.25)
+ self.step_size = step_scale / (size ** 1.25)
self.step_adapt = step_sizes.DualAverageAdaptation(
self.step_size, target_accept, gamma, k, t0
)
Mutant 324
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -94,7 +94,7 @@
self.step_adapt = step_sizes.DualAverageAdaptation(
self.step_size, target_accept, gamma, k, t0
)
- self.target_accept = target_accept
+ self.target_accept = None
self.tune = True
if scaling is None and potential is None:
Mutant 325
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -95,7 +95,7 @@
self.step_size, target_accept, gamma, k, t0
)
self.target_accept = target_accept
- self.tune = True
+ self.tune = False
if scaling is None and potential is None:
mean = floatX(np.zeros(size))
Mutant 326
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -95,7 +95,7 @@
self.step_size, target_accept, gamma, k, t0
)
self.target_accept = target_accept
- self.tune = True
+ self.tune = None
if scaling is None and potential is None:
mean = floatX(np.zeros(size))
Mutant 327
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -97,7 +97,7 @@
self.target_accept = target_accept
self.tune = True
- if scaling is None and potential is None:
+ if scaling is not None and potential is None:
mean = floatX(np.zeros(size))
var = floatX(np.ones(size))
potential = QuadPotentialDiagAdapt(size, mean, var, 10)
Mutant 328
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -97,7 +97,7 @@
self.target_accept = target_accept
self.tune = True
- if scaling is None and potential is None:
+ if scaling is None and potential is not None:
mean = floatX(np.zeros(size))
var = floatX(np.ones(size))
potential = QuadPotentialDiagAdapt(size, mean, var, 10)
Mutant 329
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -97,7 +97,7 @@
self.target_accept = target_accept
self.tune = True
- if scaling is None and potential is None:
+ if scaling is None or potential is None:
mean = floatX(np.zeros(size))
var = floatX(np.ones(size))
potential = QuadPotentialDiagAdapt(size, mean, var, 10)
Mutant 331
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -106,7 +106,7 @@
point = Point(scaling, model=model)
scaling = guess_scaling(point, model=model, vars=vars)
- if scaling is not None and potential is not None:
+ if scaling is not None and potential is None:
raise ValueError("Can not specify both potential and scaling.")
if potential is not None:
Mutant 335
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -118,7 +118,7 @@
self.potential, self._logp_dlogp_func
)
- self._step_rand = step_rand
+ self._step_rand = None
self._warnings = []
self._samples_after_tune = 0
self._num_divs_sample = 0
Mutant 337
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -120,7 +120,7 @@
self._step_rand = step_rand
self._warnings = []
- self._samples_after_tune = 0
+ self._samples_after_tune = 1
self._num_divs_sample = 0
def _hamiltonian_step(self, start, p0, step_size):
Mutant 339
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -121,7 +121,7 @@
self._step_rand = step_rand
self._warnings = []
self._samples_after_tune = 0
- self._num_divs_sample = 0
+ self._num_divs_sample = 1
def _hamiltonian_step(self, start, p0, step_size):
"""Compute one hamiltonian trajectory and return the next state.
Mutant 344
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -157,7 +157,7 @@
self._warnings.append(warning)
raise SamplingError("Bad initial energy")
- adapt_step = self.tune and self.adapt_step_size
+ adapt_step = self.tune or self.adapt_step_size
step_size = self.step_adapt.current(adapt_step)
self.step_size = step_size
Mutant 345
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -157,7 +157,7 @@
self._warnings.append(warning)
raise SamplingError("Bad initial energy")
- adapt_step = self.tune and self.adapt_step_size
+ adapt_step = None
step_size = self.step_adapt.current(adapt_step)
self.step_size = step_size
Mutant 347
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -159,7 +159,7 @@
adapt_step = self.tune and self.adapt_step_size
step_size = self.step_adapt.current(adapt_step)
- self.step_size = step_size
+ self.step_size = None
if self._step_rand is not None:
step_size = self._step_rand(step_size)
Mutant 351
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -171,7 +171,7 @@
if hmc_step.divergence_info:
info = hmc_step.divergence_info
if self.tune:
- kind = WarningType.TUNING_DIVERGENCE
+ kind = None
point = None
else:
kind = WarningType.DIVERGENCE
Mutant 352
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -172,7 +172,7 @@
info = hmc_step.divergence_info
if self.tune:
kind = WarningType.TUNING_DIVERGENCE
- point = None
+ point = ""
else:
kind = WarningType.DIVERGENCE
self._num_divs_sample += 1
Mutant 353
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -182,7 +182,7 @@
else:
point = None
warning = SamplerWarning(
- kind, info.message, "debug", self.iter_count, info.exec_info, point
+ kind, info.message, "XXdebugXX", self.iter_count, info.exec_info, point
)
self._warnings.append(warning)
Mutant 354
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -187,7 +187,7 @@
self._warnings.append(warning)
- self.iter_count += 1
+ self.iter_count = 1
if not self.tune:
self._samples_after_tune += 1
Mutant 355
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -187,7 +187,7 @@
self._warnings.append(warning)
- self.iter_count += 1
+ self.iter_count -= 1
if not self.tune:
self._samples_after_tune += 1
Mutant 356
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -187,7 +187,7 @@
self._warnings.append(warning)
- self.iter_count += 1
+ self.iter_count += 2
if not self.tune:
self._samples_after_tune += 1
Mutant 357
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -188,7 +188,7 @@
self._warnings.append(warning)
self.iter_count += 1
- if not self.tune:
+ if self.tune:
self._samples_after_tune += 1
stats = {"tune": self.tune, "diverging": bool(hmc_step.divergence_info)}
Mutant 358
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -189,7 +189,7 @@
self.iter_count += 1
if not self.tune:
- self._samples_after_tune += 1
+ self._samples_after_tune = 1
stats = {"tune": self.tune, "diverging": bool(hmc_step.divergence_info)}
Mutant 359
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -189,7 +189,7 @@
self.iter_count += 1
if not self.tune:
- self._samples_after_tune += 1
+ self._samples_after_tune -= 1
stats = {"tune": self.tune, "diverging": bool(hmc_step.divergence_info)}
Mutant 360
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -189,7 +189,7 @@
self.iter_count += 1
if not self.tune:
- self._samples_after_tune += 1
+ self._samples_after_tune += 2
stats = {"tune": self.tune, "diverging": bool(hmc_step.divergence_info)}
Mutant 365
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -207,7 +207,7 @@
warnings = self._warnings[:]
# Generate a global warning for divergences
- message = ""
+ message = "XXXX"
n_divs = self._num_divs_sample
if n_divs and self._samples_after_tune == n_divs:
message = (
Mutant 366
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -207,7 +207,7 @@
warnings = self._warnings[:]
# Generate a global warning for divergences
- message = ""
+ message = None
n_divs = self._num_divs_sample
if n_divs and self._samples_after_tune == n_divs:
message = (
Mutant 368
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -209,7 +209,7 @@
# Generate a global warning for divergences
message = ""
n_divs = self._num_divs_sample
- if n_divs and self._samples_after_tune == n_divs:
+ if n_divs and self._samples_after_tune != n_divs:
message = (
"The chain contains only diverging samples. The model "
"is probably misspecified."
Mutant 369
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -209,7 +209,7 @@
# Generate a global warning for divergences
message = ""
n_divs = self._num_divs_sample
- if n_divs and self._samples_after_tune == n_divs:
+ if n_divs or self._samples_after_tune == n_divs:
message = (
"The chain contains only diverging samples. The model "
"is probably misspecified."
Mutant 370
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -214,7 +214,7 @@
"The chain contains only diverging samples. The model "
"is probably misspecified."
)
- elif n_divs == 1:
+ elif n_divs != 1:
message = (
"There was 1 divergence after tuning. Increase "
"`target_accept` or reparameterize."
Mutant 371
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -214,7 +214,7 @@
"The chain contains only diverging samples. The model "
"is probably misspecified."
)
- elif n_divs == 1:
+ elif n_divs == 2:
message = (
"There was 1 divergence after tuning. Increase "
"`target_accept` or reparameterize."
Mutant 372
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -219,7 +219,7 @@
"There was 1 divergence after tuning. Increase "
"`target_accept` or reparameterize."
)
- elif n_divs > 1:
+ elif n_divs >= 1:
message = (
"There were %s divergences after tuning. Increase "
"`target_accept` or reparameterize." % n_divs
Mutant 373
--- pymc3/step_methods/hmc/base_hmc.py
+++ pymc3/step_methods/hmc/base_hmc.py
@@ -219,7 +219,7 @@
"There was 1 divergence after tuning. Increase "
"`target_accept` or reparameterize."
)
- elif n_divs > 1:
+ elif n_divs > 2:
message = (
"There were %s divergences after tuning. Increase "
"`target_accept` or reparameterize." % n_divs