aepsych.config

aepsych.config module

class aepsych.config.Config(config_dict=None, config_fnames=None, config_str=None)[source]

Bases: ConfigParser

Initialize the AEPsych config object. This can be used to instantiate most objects in AEPsych by calling object.from_config(config).

Parameters:
  • config_dict (Mapping[str, str], optional) – Mapping to build configuration from. Keys are section names, values are dictionaries with keys and values that should be present in the section. Defaults to None.

  • config_fnames (Sequence[str], optional) – List of INI filenames to load configuration from. Defaults to None.

  • config_str (str, optional) – String formatted as an INI file to load configuration from. Defaults to None.

registered_names: ClassVar[Dict[str, object]] = {'AEPsychObjective': <class 'aepsych.acquisition.objective.objective.AEPsychObjective'>, 'AdditiveKernel': <class 'gpytorch.kernels.kernel.AdditiveKernel'>, 'AdditiveStructureKernel': <class 'gpytorch.kernels.additive_structure_kernel.AdditiveStructureKernel'>, 'ApproxGlobalSUR': <class 'aepsych.acquisition.lookahead.ApproxGlobalSUR'>, 'ArcKernel': <class 'gpytorch.kernels.arc_kernel.ArcKernel'>, 'AxOptimizeAcqfGenerator': <class 'aepsych.generators.optimize_acqf_generator.AxOptimizeAcqfGenerator'>, 'AxRandomGenerator': <class 'aepsych.generators.random_generator.AxRandomGenerator'>, 'AxSobolGenerator': <class 'aepsych.generators.sobol_generator.AxSobolGenerator'>, 'BernoulliLikelihood': <class 'gpytorch.likelihoods.bernoulli_likelihood.BernoulliLikelihood'>, 'BernoulliMCMutualInformation': <class 'aepsych.acquisition.mutual_information.BernoulliMCMutualInformation'>, 'BernoulliObjectiveLikelihood': <class 'aepsych.likelihoods.bernoulli.BernoulliObjectiveLikelihood'>, 'BetaLikelihood': <class 'gpytorch.likelihoods.beta_likelihood.BetaLikelihood'>, 'BetaRegressionGP': <class 'aepsych.models.variational_gp.BetaRegressionGP'>, 'BinaryClassificationGP': <class 'aepsych.models.variational_gp.BinaryClassificationGP'>, 'ContinuousRegressionGP': <class 'aepsych.models.exact_gp.ContinuousRegressionGP'>, 'CosineKernel': <class 'gpytorch.kernels.cosine_kernel.CosineKernel'>, 'CylindricalKernel': <class 'gpytorch.kernels.cylindrical_kernel.CylindricalKernel'>, 'DirichletClassificationLikelihood': <class 'gpytorch.likelihoods.gaussian_likelihood.DirichletClassificationLikelihood'>, 'DistributionalInputKernel': <class 'gpytorch.kernels.distributional_input_kernel.DistributionalInputKernel'>, 'EAVC': <class 'aepsych.acquisition.lookahead.EAVC'>, 'EpsilonGreedyGenerator': <class 'aepsych.generators.epsilon_greedy_generator.EpsilonGreedyGenerator'>, 'ExactGP': <class 'aepsych.models.exact_gp.ExactGP'>, 'FixedNoiseGaussianLikelihood': <class 'gpytorch.likelihoods.gaussian_likelihood.FixedNoiseGaussianLikelihood'>, 'FloorGumbelObjective': <class 'aepsych.acquisition.objective.objective.FloorGumbelObjective'>, 'FloorLogitObjective': <class 'aepsych.acquisition.objective.objective.FloorLogitObjective'>, 'FloorProbitObjective': <class 'aepsych.acquisition.objective.objective.FloorProbitObjective'>, 'GPBetaRegressionModel': <class 'aepsych.models.gp_classification.GPBetaRegressionModel'>, 'GPClassificationModel': <class 'aepsych.models.gp_classification.GPClassificationModel'>, 'GPRegressionModel': <class 'aepsych.models.gp_regression.GPRegressionModel'>, 'GaussianLikelihood': <class 'gpytorch.likelihoods.gaussian_likelihood.GaussianLikelihood'>, 'GaussianLikelihoodWithMissingObs': <class 'gpytorch.likelihoods.gaussian_likelihood.GaussianLikelihoodWithMissingObs'>, 'GaussianSymmetrizedKLKernel': <class 'gpytorch.kernels.gaussian_symmetrized_kl_kernel.GaussianSymmetrizedKLKernel'>, 'GlobalMI': <class 'aepsych.acquisition.lookahead.GlobalMI'>, 'GlobalSUR': <class 'aepsych.acquisition.lookahead.GlobalSUR'>, 'GridInterpolationKernel': <class 'gpytorch.kernels.grid_interpolation_kernel.GridInterpolationKernel'>, 'GridKernel': <class 'gpytorch.kernels.grid_kernel.GridKernel'>, 'HadamardSemiPModel': <class 'aepsych.models.semi_p.HadamardSemiPModel'>, 'HeteroskedasticNoise': <class 'gpytorch.likelihoods.noise_models.HeteroskedasticNoise'>, 'IndependentMultitaskGPRModel': <class 'aepsych.models.multitask_regression.IndependentMultitaskGPRModel'>, 'IndexKernel': <class 'gpytorch.kernels.index_kernel.IndexKernel'>, 'InducingPointKernel': <class 'gpytorch.kernels.inducing_point_kernel.InducingPointKernel'>, 'IntensityAwareSemiPGenerator': <class 'aepsych.generators.semi_p.IntensityAwareSemiPGenerator'>, 'Kernel': <class 'gpytorch.kernels.kernel.Kernel'>, 'LCMKernel': <class 'gpytorch.kernels.lcm_kernel.LCMKernel'>, 'LaplaceLikelihood': <class 'gpytorch.likelihoods.laplace_likelihood.LaplaceLikelihood'>, 'Likelihood': <class 'gpytorch.likelihoods.likelihood.Likelihood'>, 'LikelihoodList': <class 'gpytorch.likelihoods.likelihood_list.LikelihoodList'>, 'LinearBernoulliLikelihood': <class 'aepsych.likelihoods.semi_p.LinearBernoulliLikelihood'>, 'LinearKernel': <class 'gpytorch.kernels.linear_kernel.LinearKernel'>, 'LocalMI': <class 'aepsych.acquisition.lookahead.LocalMI'>, 'LocalSUR': <class 'aepsych.acquisition.lookahead.LocalSUR'>, 'MCLevelSetEstimation': <class 'aepsych.acquisition.lse.MCLevelSetEstimation'>, 'MCPosteriorVariance': <class 'aepsych.acquisition.mc_posterior_variance.MCPosteriorVariance'>, 'ManualGenerator': <class 'aepsych.generators.manual_generator.ManualGenerator'>, 'MaternKernel': <class 'gpytorch.kernels.matern_kernel.MaternKernel'>, 'MinAsks': <class 'aepsych.generators.completion_criterion.min_asks.MinAsks'>, 'MinTotalOutcomeOccurrences': <class 'aepsych.generators.completion_criterion.min_total_outcome_occurrences.MinTotalOutcomeOccurrences'>, 'MinTotalTells': <class 'aepsych.generators.completion_criterion.min_total_tells.MinTotalTells'>, 'MonotonicBernoulliMCMutualInformation': <class 'aepsych.acquisition.mutual_information.MonotonicBernoulliMCMutualInformation'>, 'MonotonicMCLSE': <class 'aepsych.acquisition.monotonic_rejection.MonotonicMCLSE'>, 'MonotonicMCPosteriorVariance': <class 'aepsych.acquisition.mc_posterior_variance.MonotonicMCPosteriorVariance'>, 'MonotonicProjectionGP': <class 'aepsych.models.monotonic_projection_gp.MonotonicProjectionGP'>, 'MonotonicRejectionGP': <class 'aepsych.models.monotonic_rejection_gp.MonotonicRejectionGP'>, 'MonotonicRejectionGenerator': <class 'aepsych.generators.monotonic_rejection_generator.MonotonicRejectionGenerator'>, 'MonotonicThompsonSamplerGenerator': <class 'aepsych.generators.monotonic_thompson_sampler_generator.MonotonicThompsonSamplerGenerator'>, 'MultiDeviceKernel': <class 'gpytorch.kernels.multi_device_kernel.MultiDeviceKernel'>, 'MultiOutcomeOptimizationGenerator': <class 'aepsych.generators.multi_outcome_generator.MultiOutcomeOptimizationGenerator'>, 'MultitaskGPRModel': <class 'aepsych.models.multitask_regression.MultitaskGPRModel'>, 'MultitaskGaussianLikelihood': <class 'gpytorch.likelihoods.multitask_gaussian_likelihood.MultitaskGaussianLikelihood'>, 'MultitaskKernel': <class 'gpytorch.kernels.multitask_kernel.MultitaskKernel'>, 'NewtonGirardAdditiveKernel': <class 'gpytorch.kernels.newton_girard_additive_kernel.NewtonGirardAdditiveKernel'>, 'None': None, 'OptimizeAcqfGenerator': <class 'aepsych.generators.optimize_acqf_generator.OptimizeAcqfGenerator'>, 'OrdinalGP': <class 'aepsych.models.variational_gp.OrdinalGP'>, 'OrdinalGPModel': <class 'aepsych.models.ordinal_gp.OrdinalGPModel'>, 'OrdinalLikelihood': <class 'aepsych.likelihoods.ordinal.OrdinalLikelihood'>, 'PairwiseOptimizeAcqfGenerator': <class 'aepsych.generators.pairwise_optimize_acqf_generator.PairwiseOptimizeAcqfGenerator'>, 'PairwiseProbitModel': <class 'aepsych.models.pairwise_probit.PairwiseProbitModel'>, 'PairwiseSobolGenerator': <class 'aepsych.generators.pairwise_sobol_generator.PairwiseSobolGenerator'>, 'PeriodicKernel': <class 'gpytorch.kernels.periodic_kernel.PeriodicKernel'>, 'PiecewisePolynomialKernel': <class 'gpytorch.kernels.piecewise_polynomial_kernel.PiecewisePolynomialKernel'>, 'PolynomialKernel': <class 'gpytorch.kernels.polynomial_kernel.PolynomialKernel'>, 'PolynomialKernelGrad': <class 'gpytorch.kernels.polynomial_kernel_grad.PolynomialKernelGrad'>, 'ProbitObjective': <class 'aepsych.acquisition.objective.objective.ProbitObjective'>, 'ProductKernel': <class 'gpytorch.kernels.kernel.ProductKernel'>, 'ProductStructureKernel': <class 'gpytorch.kernels.product_structure_kernel.ProductStructureKernel'>, 'RBFKernel': <class 'gpytorch.kernels.rbf_kernel.RBFKernel'>, 'RBFKernelGrad': <class 'gpytorch.kernels.rbf_kernel_grad.RBFKernelGrad'>, 'RFFKernel': <class 'gpytorch.kernels.rff_kernel.RFFKernel'>, 'RQKernel': <class 'gpytorch.kernels.rq_kernel.RQKernel'>, 'RandomGenerator': <class 'aepsych.generators.random_generator.RandomGenerator'>, 'RunIndefinitely': <class 'aepsych.generators.completion_criterion.run_indefinitely.RunIndefinitely'>, 'ScaleKernel': <class 'gpytorch.kernels.scale_kernel.ScaleKernel'>, 'SemiPProbabilityObjective': <class 'aepsych.acquisition.objective.semi_p.SemiPProbabilityObjective'>, 'SemiPThresholdObjective': <class 'aepsych.acquisition.objective.semi_p.SemiPThresholdObjective'>, 'SemiParametricGPModel': <class 'aepsych.models.semi_p.SemiParametricGPModel'>, 'SequentialStrategy': <class 'aepsych.strategy.SequentialStrategy'>, 'SobolGenerator': <class 'aepsych.generators.sobol_generator.SobolGenerator'>, 'SoftmaxLikelihood': <class 'gpytorch.likelihoods.softmax_likelihood.SoftmaxLikelihood'>, 'SpectralDeltaKernel': <class 'gpytorch.kernels.spectral_delta_kernel.SpectralDeltaKernel'>, 'SpectralMixtureKernel': <class 'gpytorch.kernels.spectral_mixture_kernel.SpectralMixtureKernel'>, 'Strategy': <class 'aepsych.strategy.Strategy'>, 'StudentTLikelihood': <class 'gpytorch.likelihoods.student_t_likelihood.StudentTLikelihood'>, 'VariationalGP': <class 'aepsych.models.variational_gp.VariationalGP'>, '_GaussianLikelihoodBase': <class 'gpytorch.likelihoods.gaussian_likelihood._GaussianLikelihoodBase'>, '_MultitaskGaussianLikelihoodBase': <class 'gpytorch.likelihoods.multitask_gaussian_likelihood._MultitaskGaussianLikelihoodBase'>, '_OneDimensionalLikelihood': <class 'gpytorch.likelihoods.likelihood._OneDimensionalLikelihood'>, 'completion_criteria': [<class 'aepsych.generators.completion_criterion.min_total_tells.MinTotalTells'>, <class 'aepsych.generators.completion_criterion.min_asks.MinAsks'>, <class 'aepsych.generators.completion_criterion.min_total_outcome_occurrences.MinTotalOutcomeOccurrences'>, <class 'aepsych.generators.completion_criterion.run_indefinitely.RunIndefinitely'>], 'default_mean_covar_factory': <function default_mean_covar_factory>, 'monotonic_mean_covar_factory': <function monotonic_mean_covar_factory>, 'ordinal_mean_covar_factory': <function ordinal_mean_covar_factory>, 'semi_p_posterior_transform': <function semi_p_posterior_transform>, 'song_mean_covar_factory': <function song_mean_covar_factory>}
to_dict(deduplicate=True)[source]
jsonifyMetadata()[source]
Return type:

str

jsonifyAll()[source]
Return type:

str

update(config_dict=None, config_fnames=None, config_str=None)[source]

Update this object with a new configuration.

Parameters:
  • config_dict (Mapping[str, str], optional) – Mapping to build configuration from. Keys are section names, values are dictionaries with keys and values that should be present in the section. Defaults to None.

  • config_fnames (Sequence[str], optional) – List of INI filenames to load configuration from. Defaults to None.

  • config_str (str, optional) – String formatted as an INI file to load configuration from. Defaults to None.

classmethod register_module(module)[source]
Register a module with Config so that objects in it can

be referred to by their string name in config files.

Parameters:

module (ModuleType) – Module to register.

classmethod register_object(obj)[source]
Register an object with Config so that it can be

referred to by its string name in config files.

Parameters:

obj (object) – Object to register.

get_section(section)[source]
convert_to_latest()[source]
convert(from_version, to_version)[source]

Converts a config from an older version to a newer version.

Parameters:
  • from_version (str) – The version of the config to be converted.

  • to_version (str) – The version the config should be converted to.

Return type:

None

property version: str

Returns the version number of the config.

class aepsych.config.ConfigurableMixin[source]

Bases: ABC

abstract classmethod get_config_options(config, name)[source]
Parameters:
  • config (Config) –

  • name (str) –

Return type:

Dict[str, Any]

classmethod from_config(config, name=None)[source]
Parameters:
  • config (Config) –

  • name (Optional[str]) –