in vihds/parameters.py [0:0]
def __init__(self, name, class_type, defaults, conditioning=None):
self.name = name
self.class_type = class_type
self.defaults = defaults
self.conditioning = conditioning
self.other_params = {}
if class_type == TfNormal or class_type == TfLogNormal:
self.nbr_free_params = 2
self.free_params = ["mu", "log_prec"]
self.params = ["mu", "prec"]
self.free_to_constrained = ["identity", "positive"]
mu_dependency = None
prec_dependency = None
init_mu = 0.0
if "mu" in defaults:
if defaults["prec"].__class__ == str:
print("found dependency for %s.mu = %s" % (self.name, defaults["mu"]))
mu_dependency = defaults["mu"]
else:
init_mu = defaults["mu"]
init_prec = 1.0
init_log_prec = 0.0
if "prec" in defaults:
if (defaults["prec"] is not None) and (defaults["prec"].__class__ != str):
init_prec = defaults["prec"]
init_log_prec = np.log(init_prec)
elif defaults["prec"].__class__ == str:
print("found dependency for %s.prec = %s" % (self.name, defaults["prec"]))
prec_dependency = defaults["prec"]
elif "sigma" in defaults:
if (defaults["sigma"] is not None) and (defaults["sigma"].__class__ != str):
init_prec = 1.0 / np.square(defaults["sigma"])
init_log_prec = np.log(init_prec)
else:
print("WARNING: using *very* default params for %s" % (str(class_type)))
self.init_params = [init_mu, init_prec]
self.init_free_params = [init_mu, init_log_prec]
self.dependencies = [mu_dependency, prec_dependency]
elif class_type == TfTruncatedNormal:
self.nbr_free_params = 2
self.free_params = ["mu", "log_prec"]
self.params = ["mu", "prec"]
self.free_to_constrained = ["identity", "positive"]
self.other_param_names = ["a", "b"]
mu_dependency = None
prec_dependency = None
init_mu = 0.0
if "mu" in defaults:
if defaults["prec"].__class__ == str:
print("found dependency for %s.mu = %s" % (self.name, defaults["mu"]))
mu_dependency = defaults["mu"]
else:
init_mu = defaults["mu"]
init_prec = 1.0
init_log_prec = 0.0
if "prec" in defaults:
if (defaults["prec"] is not None) and (defaults["prec"].__class__ != str):
init_prec = defaults["prec"]
init_log_prec = np.log(init_prec)
elif defaults["prec"].__class__ == str:
print("found dependency for %s.prec = %s" % (self.name, defaults["prec"]))
prec_dependency = defaults["prec"]
elif "sigma" in defaults:
if (defaults["sigma"] is not None) and (defaults["sigma"].__class__ != str):
init_prec = 1.0 / np.square(defaults["sigma"])
init_log_prec = np.log(init_prec)
else:
print("WARNING: using *very* default params for %s" % (str(class_type)))
self.init_params = [init_mu, init_prec]
self.init_free_params = [init_mu, init_log_prec]
self.dependencies = [mu_dependency, prec_dependency]
self.other_params["a"] = default_get_value(defaults, "a", -np.inf)
self.other_params["b"] = default_get_value(defaults, "b", -np.inf)
elif class_type == TfKumaraswamy:
self.nbr_free_params = 2
self.free_params = ["log_a", "log_b"]
self.params = ["a", "b"]
self.free_to_constrained = ["positive", "positive"]
self.other_param_names = ["zmin", "zmax"]
# init_zmin = 0.0
# init_zmax = 1.0
a_dependency = None
b_dependency = None
init_a = None
init_log_a = None
if "a" in defaults:
if (defaults["a"] is not None) and (defaults["a"].__class__ != str):
init_a = defaults["a"]
init_log_a = np.log(init_a)
elif defaults["a"].__class__ == str:
print("found dependency for %s.a = %s" % (self.name, defaults["a"]))
b_dependency = defaults["a"]
else:
raise NotImplementedError("Missing a")
init_b = None
init_log_b = None
if "b" in defaults:
if (defaults["b"] is not None) and (defaults["a"].__class__ != str):
init_b = defaults["b"]
init_log_b = np.log(init_b)
elif defaults["b"].__class__ == str:
print("found dependency for %s.b = %s" % (self.name, defaults["b"]))
b_dependency = defaults["b"]
else:
raise NotImplementedError("Missing b")
self.init_params = [init_a, init_b]
self.init_free_params = [init_log_a, init_log_b]
self.dependencies = [a_dependency, b_dependency]
self.other_params["zmin"] = default_get_value(defaults, "zmin", 0.0)
self.other_params["zmax"] = default_get_value(defaults, "zmax", 1.0)
elif class_type == TfConstant:
self.nbr_free_params = 1
self.free_params = ["value"]
self.params = ["value"]
self.free_to_constrained = ["identity"]
value_dependency = None
init_value = 0.0
if "value" in defaults:
init_value = defaults["value"]
self.init_params = [init_value]
self.init_free_params = [init_value]
self.dependencies = [value_dependency]
else:
raise NotImplementedError("unknown class type %s" % (str(class_type)))