mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-06-02 14:45:15 +02:00
99 lines
2.2 KiB
Python
99 lines
2.2 KiB
Python
import numpy
|
|
from GPy.core.parameterization.priors import (
|
|
Gaussian,
|
|
Uniform,
|
|
LogGaussian,
|
|
MultivariateGaussian,
|
|
Gamma,
|
|
InverseGamma,
|
|
DGPLVM,
|
|
DGPLVM_KFDA,
|
|
DGPLVM_Lamda,
|
|
DGPLVM_T,
|
|
HalfT,
|
|
Exponential,
|
|
StudentT,
|
|
)
|
|
|
|
|
|
def initialize_gaussian_prior() -> None:
|
|
return Gaussian(0, 1)
|
|
|
|
|
|
def initialize_uniform_prior() -> None:
|
|
return Uniform(0, 1)
|
|
|
|
|
|
def initialize_log_gaussian_prior() -> None:
|
|
return LogGaussian(0, 1)
|
|
|
|
|
|
def initialize_multivariate_gaussian_prior() -> None:
|
|
return MultivariateGaussian(numpy.zeros(2), numpy.eye(2))
|
|
|
|
|
|
def initialize_gamma_prior() -> None:
|
|
return Gamma(1, 1)
|
|
|
|
|
|
def initialize_inverse_gamma_prior() -> None:
|
|
return InverseGamma(1, 1)
|
|
|
|
|
|
def initialize_dgplvm_prior() -> None:
|
|
return DGPLVM(1, 1, (1, 1))
|
|
|
|
|
|
def initialize_dgplvm_kfda_prior() -> None:
|
|
return DGPLVM_KFDA(1, 1, (1, 1))
|
|
|
|
|
|
def initialize_dgplvm_lamda_prior() -> None:
|
|
return DGPLVM_Lamda(1, 1, (1, 1))
|
|
|
|
|
|
def initialize_dgplvm_t_prior() -> None:
|
|
return DGPLVM_T(1, 1, (1, 1))
|
|
|
|
|
|
def initialize_half_t_prior() -> None:
|
|
return HalfT(1, 1)
|
|
|
|
|
|
def initialize_exponential_prior() -> None:
|
|
return Exponential(1)
|
|
|
|
|
|
def initialize_student_t_prior() -> None:
|
|
return StudentT(1, 1, 1)
|
|
|
|
|
|
PRIORS = {
|
|
"Gaussian": initialize_gaussian_prior,
|
|
"Uniform": initialize_uniform_prior,
|
|
"LogGaussian": initialize_log_gaussian_prior,
|
|
"MultivariateGaussian": initialize_multivariate_gaussian_prior,
|
|
"Gamma": initialize_gamma_prior,
|
|
"InverseGamma": initialize_inverse_gamma_prior,
|
|
"DGPLVM": initialize_dgplvm_prior,
|
|
"DGPLVM_KFDA": initialize_dgplvm_kfda_prior,
|
|
"DGPLVM_Lamda": initialize_dgplvm_lamda_prior,
|
|
"DGPLVM_T": initialize_dgplvm_t_prior,
|
|
"HalfT": initialize_half_t_prior,
|
|
"Exponential": initialize_exponential_prior,
|
|
"StudentT": initialize_student_t_prior,
|
|
}
|
|
|
|
|
|
def check_prior(prior_getter: str) -> None:
|
|
prior_getter()
|
|
|
|
|
|
def test_priors() -> None:
|
|
for prior_name, prior_getter in PRIORS.items():
|
|
try:
|
|
check_prior(prior_getter)
|
|
except Exception as e:
|
|
raise RuntimeError(
|
|
f"Failed to initialize {prior_name} prior"
|
|
) from e # noqa E501
|