ax.storage

JSON

ax.storage.json_store.decoder module

ax.storage.json_store.decoder.ax_class_from_json_dict(_class: type, object_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) Any[source]

Reinstantiates an Ax class registered in DECODER_REGISTRY from a JSON dict.

ax.storage.json_store.decoder.data_from_json(data_by_trial_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) dict[int, OrderedDict[int, Data]][source]

Load Ax Data from JSON.

ax.storage.json_store.decoder.experiment_from_json(object_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) Experiment[source]

Load Ax Experiment from JSON.

ax.storage.json_store.decoder.generation_node_from_json(generation_node_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) GenerationNode[source]

Load GenerationNode object from JSON.

ax.storage.json_store.decoder.generation_step_from_json(generation_step_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) GenerationStep[source]

Load generation step from JSON.

ax.storage.json_store.decoder.generation_strategy_from_json(generation_strategy_json: dict[str, ~typing.Any], experiment: ~ax.core.experiment.Experiment | None = None, decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) GenerationStrategy[source]

Load generation strategy from JSON.

ax.storage.json_store.decoder.generator_run_from_json(object_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) GeneratorRun[source]

Load Ax GeneratorRun from JSON.

ax.storage.json_store.decoder.get_input_transform_json_components(input_transforms_json: list[dict[str, ~typing.Any]] | dict[str, ~typing.Any] | None, decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) tuple[list[dict[str, Any]] | None, dict[str, Any] | None][source]
ax.storage.json_store.decoder.get_outcome_transform_json_components(outcome_transforms_json: list[dict[str, ~typing.Any]] | None, decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) tuple[list[dict[str, Any]] | None, dict[str, Any] | None][source]
ax.storage.json_store.decoder.model_spec_from_json(model_spec_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) ModelSpec[source]

Load ModelSpec from JSON.

ax.storage.json_store.decoder.multi_type_experiment_from_json(object_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) MultiTypeExperiment[source]

Load AE MultiTypeExperiment from JSON.

ax.storage.json_store.decoder.object_from_json(object_json: ~typing.Any, decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) Any[source]

Recursively load objects from a JSON-serializable dictionary.

ax.storage.json_store.decoder.objective_from_json(object_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) Objective[source]

Load an Objective from JSON in a backwards compatible way.

If both minimize and lower_is_better are specified but have conflicting values, this will overwrite lower_is_better=minimize to resolve the conflict.

# TODO: Do we need to do this for scalarized objective as well?

ax.storage.json_store.decoder.parameter_constraints_from_json(parameter_constraint_json: list[dict[str, ~typing.Any]], parameters: list[~ax.core.parameter.Parameter], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) list[ParameterConstraint][source]

Load ParameterConstraints from JSON.

Order and SumConstraint are tied to a search space, and require that SearchSpace’s parameters to be passed in for decoding.

Parameters:
  • parameter_constraint_json – JSON representation of parameter constraints.

  • parameters – Parameter definitions for decoding via parameter names.

Returns:

Python classes for parameter constraints.

Return type:

parameter_constraints

ax.storage.json_store.decoder.search_space_from_json(search_space_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) SearchSpace[source]

Load a SearchSpace from JSON.

This function is necessary due to the coupled loading of SearchSpace and parameter constraints.

ax.storage.json_store.decoder.surrogate_from_list_surrogate_json(list_surrogate_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) Surrogate[source]
ax.storage.json_store.decoder.trials_from_json(experiment: ~ax.core.experiment.Experiment, trials_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) dict[int, BaseTrial][source]

Load Ax Trials from JSON.

ax.storage.json_store.decoder.unpack_transition_criteria_from_json(class_: type, transition_criteria_json: dict[str, ~typing.Any], decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) TransitionCriterion | None[source]

Load Ax transition criteria that depend on Trials from JSON.

Since TrialBasedCriterion contain lists of TrialStatus, the json for these criterion needs to be carefully unpacked and re-processed via object_from_json in order to maintain correct typing. We pass in class_ in order to correctly handle all classes which inherit from TrialBasedCriterion (ex: MaxTrials).

ax.storage.json_store.decoders module

ax.storage.json_store.decoders.batch_trial_from_json(experiment: core.experiment.Experiment, index: int, trial_type: str | None, status: TrialStatus, time_created: datetime, time_completed: datetime | None, time_staged: datetime | None, time_run_started: datetime | None, abandoned_reason: str | None, run_metadata: dict[str, Any] | None, generator_run_structs: list[GeneratorRunStruct], runner: Runner | None, abandoned_arms_metadata: dict[str, AbandonedArm], num_arms_created: int, status_quo: Arm | None, status_quo_weight_override: float, optimize_for_power: bool | None, failed_reason: str | None = None, ttl_seconds: int | None = None, generation_step_index: int | None = None, properties: dict[str, Any] | None = None, stop_metadata: dict[str, Any] | None = None, lifecycle_stage: LifecycleStage | None = None, **kwargs: Any) BatchTrial[source]

Load Ax BatchTrial from JSON.

Other classes don’t need explicit deserializers, because we can just use their constructors (see decoder.py). However, the constructor for Batch does not allow us to exactly recreate an existing object.

ax.storage.json_store.decoders.botorch_component_from_json(botorch_class: type[T], json: dict[str, Any]) T[source]

Load any instance of torch.nn.Module or descendants registered in CLASS_DECODER_REGISTRY from state dict.

ax.storage.json_store.decoders.class_from_json(json: dict[str, Any]) type[Any][source]

Load any class registered in CLASS_DECODER_REGISTRY from JSON.

ax.storage.json_store.decoders.default_from_json(json: dict[str, Any]) _DefaultType[source]
ax.storage.json_store.decoders.input_transform_type_from_json(object_json: dict[str, Any]) type[InputTransform][source]
ax.storage.json_store.decoders.outcome_transform_type_from_json(object_json: dict[str, Any]) type[OutcomeTransform][source]
ax.storage.json_store.decoders.pathlib_from_json(pathsegments: str | Iterable[str]) Path[source]
ax.storage.json_store.decoders.tensor_from_json(json: dict[str, Any]) Tensor[source]
ax.storage.json_store.decoders.tensor_or_size_from_json(json: dict[str, Any]) Tensor | Size[source]
ax.storage.json_store.decoders.transform_type_from_json(object_json: dict[str, Any]) type[Transform][source]

Load the transform type from JSON.

ax.storage.json_store.decoders.trial_from_json(experiment: core.experiment.Experiment, index: int, trial_type: str | None, status: TrialStatus, time_created: datetime, time_completed: datetime | None, time_staged: datetime | None, time_run_started: datetime | None, abandoned_reason: str | None, run_metadata: dict[str, Any] | None, generator_run: GeneratorRun, runner: Runner | None, num_arms_created: int, failed_reason: str | None = None, ttl_seconds: int | None = None, generation_step_index: int | None = None, properties: dict[str, Any] | None = None, stop_metadata: dict[str, Any] | None = None, **kwargs: Any) Trial[source]

Load Ax trial from JSON.

Other classes don’t need explicit deserializers, because we can just use their constructors (see decoder.py). However, the constructor for Trial does not allow us to exactly recreate an existing object.

ax.storage.json_store.encoder module

ax.storage.json_store.encoder.object_to_json(obj: ~typing.Any, encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = {<class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>: <function metric_to_dict>, <class 'ax.core.arm.Arm'>: <function arm_to_dict>, <class 'ax.core.auxiliary.AuxiliaryExperiment'>: <function auxiliary_experiment_to_dict>, <class 'ax.core.batch_trial.BatchTrial'>: <function batch_to_dict>, <class 'ax.core.data.Data'>: <function data_to_dict>, <class 'ax.core.experiment.Experiment'>: <function experiment_to_dict>, <class 'ax.core.generator_run.GeneratorRun'>: <function generator_run_to_dict>, <class 'ax.core.map_data.MapData'>: <function map_data_to_dict>, <class 'ax.core.map_data.MapKeyInfo'>: <function map_key_info_to_dict>, <class 'ax.core.map_metric.MapMetric'>: <function metric_to_dict>, <class 'ax.core.metric.Metric'>: <function metric_to_dict>, <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>: <function multi_type_experiment_to_dict>, <class 'ax.core.objective.MultiObjective'>: <function multi_objective_to_dict>, <class 'ax.core.objective.Objective'>: <function objective_to_dict>, <class 'ax.core.objective.ScalarizedObjective'>: <function scalarized_objective_to_dict>, <class 'ax.core.observation.ObservationFeatures'>: <function observation_features_to_dict>, <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>: <function multi_objective_optimization_config_to_dict>, <class 'ax.core.optimization_config.OptimizationConfig'>: <function optimization_config_to_dict>, <class 'ax.core.outcome_constraint.ObjectiveThreshold'>: <function outcome_constraint_to_dict>, <class 'ax.core.outcome_constraint.OutcomeConstraint'>: <function outcome_constraint_to_dict>, <class 'ax.core.parameter.ChoiceParameter'>: <function choice_parameter_to_dict>, <class 'ax.core.parameter.FixedParameter'>: <function fixed_parameter_to_dict>, <class 'ax.core.parameter.RangeParameter'>: <function range_parameter_to_dict>, <class 'ax.core.parameter_constraint.OrderConstraint'>: <function order_parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.ParameterConstraint'>: <function parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.SumConstraint'>: <function sum_parameter_constraint_to_dict>, <class 'ax.core.parameter_distribution.ParameterDistribution'>: <function parameter_distribution_to_dict>, <class 'ax.core.risk_measures.RiskMeasure'>: <function risk_measure_to_dict>, <class 'ax.core.search_space.HierarchicalSearchSpace'>: <function search_space_to_dict>, <class 'ax.core.search_space.RobustSearchSpace'>: <function robust_search_space_to_dict>, <class 'ax.core.search_space.SearchSpace'>: <function search_space_to_dict>, <class 'ax.core.trial.Trial'>: <function trial_to_dict>, <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>: <function percentile_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>: <function threshold_early_stopping_strategy_to_dict>, <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>: <function improvement_global_stopping_strategy_to_dict>, <class 'ax.metrics.branin.BraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin.NegativeBraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>: <function metric_to_dict>, <class 'ax.metrics.chemistry.ChemistryMetric'>: <function metric_to_dict>, <class 'ax.metrics.factorial.FactorialMetric'>: <function metric_to_dict>, <class 'ax.metrics.hartmann6.Hartmann6Metric'>: <function metric_to_dict>, <class 'ax.metrics.l2norm.L2NormMetric'>: <function metric_to_dict>, <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>: <function metric_to_dict>, <class 'ax.metrics.sklearn.SklearnMetric'>: <function metric_to_dict>, <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>: <function best_model_selector_to_dict>, <class 'ax.modelbridge.generation_node.GenerationNode'>: <function generation_node_to_dict>, <class 'ax.modelbridge.generation_node.GenerationStep'>: <function generation_step_to_dict>, <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>: <function generation_strategy_to_dict>, <class 'ax.modelbridge.model_spec.ModelSpec'>: <function model_spec_to_dict>, <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.TransitionCriterion'>: <function transition_criterion_to_dict>, <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>: <function botorch_model_to_dict>, <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>: <function surrogate_to_dict>, <class 'ax.models.winsorization_config.WinsorizationConfig'>: <function winsorization_config_to_dict>, <class 'ax.runners.synthetic.SyntheticRunner'>: <function runner_to_dict>, <class 'botorch.models.transforms.input.ChainedInputTransform'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Normalize'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Round'>: <function botorch_component_to_dict>, <class 'botorch.sampling.normal.SobolQMCNormalSampler'>: <function botorch_component_to_dict>, <class 'gpytorch.constraints.constraints.Interval'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.GammaPrior'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: <function botorch_component_to_dict>, <class 'pathlib.Path'>: <function pathlib_to_dict>, <class 'pathlib.PosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PurePath'>: <function pathlib_to_dict>, <class 'pathlib.PurePosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PureWindowsPath'>: <function pathlib_to_dict>, <class 'pathlib.WindowsPath'>: <function pathlib_to_dict>}, class_encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = {<class 'ax.modelbridge.transforms.base.Transform'>: <function transform_type_to_dict>, <class 'ax.models.torch.botorch_modular.acquisition.Acquisition'>: <function botorch_modular_to_dict>, <class 'botorch.acquisition.acquisition.AcquisitionFunction'>: <function botorch_modular_to_dict>, <class 'botorch.models.model.Model'>: <function botorch_modular_to_dict>, <class 'botorch.utils.types.DEFAULT'>: <function default_to_dict>, <class 'gpytorch.likelihoods.likelihood.Likelihood'>: <function botorch_modular_to_dict>, <class 'gpytorch.mlls.marginal_log_likelihood.MarginalLogLikelihood'>: <function botorch_modular_to_dict>, <class 'torch.nn.modules.module.Module'>: <function botorch_modular_to_dict>}) Any[source]

Convert an Ax object to a JSON-serializable dictionary.

The root node passed to this function should always be an instance of a core Ax class or a JSON-compatible python builtin. The sub-fields of the input will then be recursively passed to this function.

e.g. if we pass an instance of Experiment, we will first fall through to the line object_dict = ENCODER_REGISTRY[_type](object), which will convert the Experiment to a (shallow) dictionary, where search subfield remains “unconverted”, i.e.: {“name”: <name: string>, “search_space”: <search space: SearchSpace>}. We then pass each item of the dictionary back into this function to recursively convert the entire object.

ax.storage.json_store.encoders module

ax.storage.json_store.encoders.arm_to_dict(arm: Arm) dict[str, Any][source]

Convert Ax arm to a dictionary.

ax.storage.json_store.encoders.auxiliary_experiment_to_dict(auxiliary_experiment: AuxiliaryExperiment) dict[str, Any][source]
ax.storage.json_store.encoders.batch_to_dict(batch: BatchTrial) dict[str, Any][source]

Convert Ax batch to a dictionary.

ax.storage.json_store.encoders.best_model_selector_to_dict(best_model_selector: BestModelSelector) dict[str, Any][source]

Convert BestModelSelector to a dictionary.

ax.storage.json_store.encoders.botorch_component_to_dict(input_obj: Any) dict[str, Any][source]
ax.storage.json_store.encoders.botorch_input_transform_to_init_args(input_transform: InputTransform) dict[str, Any][source]

Extract the init kwargs from an input transform.

ax.storage.json_store.encoders.botorch_model_to_dict(model: BoTorchModel) dict[str, Any][source]

Convert Ax model to a dictionary.

ax.storage.json_store.encoders.botorch_modular_to_dict(class_type: type[Any]) dict[str, Any][source]

Convert any class to a dictionary.

ax.storage.json_store.encoders.choice_parameter_to_dict(parameter: ChoiceParameter) dict[str, Any][source]

Convert Ax choice parameter to a dictionary.

ax.storage.json_store.encoders.data_to_dict(data: Data) dict[str, Any][source]

Convert Ax data to a dictionary.

ax.storage.json_store.encoders.default_to_dict(default: _DefaultType) dict[str, Any][source]
ax.storage.json_store.encoders.experiment_to_dict(experiment: Experiment) dict[str, Any][source]

Convert Ax experiment to a dictionary.

ax.storage.json_store.encoders.fixed_parameter_to_dict(parameter: FixedParameter) dict[str, Any][source]

Convert Ax fixed parameter to a dictionary.

ax.storage.json_store.encoders.generation_node_to_dict(generation_node: GenerationNode) dict[str, Any][source]

Convert Ax generation node to a dictionary.

ax.storage.json_store.encoders.generation_step_to_dict(generation_step: GenerationStep) dict[str, Any][source]

Converts Ax generation step to a dictionary.

ax.storage.json_store.encoders.generation_strategy_to_dict(generation_strategy: GenerationStrategy) dict[str, Any][source]

Converts Ax generation strategy to a dictionary.

ax.storage.json_store.encoders.generator_run_to_dict(generator_run: GeneratorRun) dict[str, Any][source]

Convert Ax generator run to a dictionary.

ax.storage.json_store.encoders.improvement_global_stopping_strategy_to_dict(gss: ImprovementGlobalStoppingStrategy) dict[str, Any][source]

Convert ImprovementGlobalStoppingStrategy to a dictionary.

ax.storage.json_store.encoders.logical_early_stopping_strategy_to_dict(strategy: LogicalEarlyStoppingStrategy) dict[str, Any][source]
ax.storage.json_store.encoders.map_data_to_dict(map_data: MapData) dict[str, Any][source]

Convert Ax map data to a dictionary.

ax.storage.json_store.encoders.map_key_info_to_dict(mki: MapKeyInfo) dict[str, Any][source]

Convert Ax map data metadata to a dictionary.

ax.storage.json_store.encoders.metric_to_dict(metric: Metric) dict[str, Any][source]

Convert Ax metric to a dictionary.

ax.storage.json_store.encoders.model_spec_to_dict(model_spec: ModelSpec) dict[str, Any][source]

Convert Ax model spec to a dictionary.

ax.storage.json_store.encoders.multi_objective_optimization_config_to_dict(multi_objective_optimization_config: MultiObjectiveOptimizationConfig) dict[str, Any][source]

Convert Ax optimization config to a dictionary.

ax.storage.json_store.encoders.multi_objective_to_dict(objective: MultiObjective) dict[str, Any][source]

Convert Ax objective to a dictionary.

ax.storage.json_store.encoders.multi_type_experiment_to_dict(experiment: MultiTypeExperiment) dict[str, Any][source]

Convert AE multitype experiment to a dictionary.

ax.storage.json_store.encoders.objective_to_dict(objective: Objective) dict[str, Any][source]

Convert Ax objective to a dictionary.

ax.storage.json_store.encoders.observation_features_to_dict(obs_features: ObservationFeatures) dict[str, Any][source]

Converts Ax observation features to a dictionary

ax.storage.json_store.encoders.optimization_config_to_dict(optimization_config: OptimizationConfig) dict[str, Any][source]

Convert Ax optimization config to a dictionary.

ax.storage.json_store.encoders.order_parameter_constraint_to_dict(parameter_constraint: OrderConstraint) dict[str, Any][source]

Convert Ax order parameter constraint to a dictionary.

ax.storage.json_store.encoders.outcome_constraint_to_dict(outcome_constraint: OutcomeConstraint) dict[str, Any][source]

Convert Ax outcome constraint to a dictionary.

ax.storage.json_store.encoders.parameter_constraint_to_dict(parameter_constraint: ParameterConstraint) dict[str, Any][source]

Convert Ax sum parameter constraint to a dictionary.

ax.storage.json_store.encoders.parameter_distribution_to_dict(dist: ParameterDistribution) dict[str, Any][source]

Convert a parameter distribution to a dictionary.

ax.storage.json_store.encoders.pathlib_to_dict(path: Path) dict[str, Any][source]
ax.storage.json_store.encoders.percentile_early_stopping_strategy_to_dict(strategy: PercentileEarlyStoppingStrategy) dict[str, Any][source]

Convert Ax percentile early stopping strategy to a dictionary.

ax.storage.json_store.encoders.range_parameter_to_dict(parameter: RangeParameter) dict[str, Any][source]

Convert Ax range parameter to a dictionary.

ax.storage.json_store.encoders.risk_measure_to_dict(risk_measure: RiskMeasure) dict[str, Any][source]

Convert a RiskMeasure to a dictionary.

ax.storage.json_store.encoders.robust_search_space_to_dict(rss: RobustSearchSpace) dict[str, Any][source]

Convert robust search space to a dictionary.

ax.storage.json_store.encoders.runner_to_dict(runner: Runner) dict[str, Any][source]

Convert Ax runner to a dictionary.

ax.storage.json_store.encoders.scalarized_objective_to_dict(objective: ScalarizedObjective) dict[str, Any][source]

Convert Ax objective to a dictionary.

ax.storage.json_store.encoders.search_space_to_dict(search_space: SearchSpace) dict[str, Any][source]

Convert Ax search space to a dictionary.

ax.storage.json_store.encoders.sum_parameter_constraint_to_dict(parameter_constraint: SumConstraint) dict[str, Any][source]

Convert Ax sum parameter constraint to a dictionary.

ax.storage.json_store.encoders.surrogate_to_dict(surrogate: Surrogate) dict[str, Any][source]

Convert Ax surrogate to a dictionary.

ax.storage.json_store.encoders.tensor_to_dict(obj: Tensor) dict[str, Any][source]
ax.storage.json_store.encoders.threshold_early_stopping_strategy_to_dict(strategy: ThresholdEarlyStoppingStrategy) dict[str, Any][source]

Convert Ax metric-threshold early stopping strategy to a dictionary.

ax.storage.json_store.encoders.transform_type_to_dict(transform_type: type[Transform]) dict[str, Any][source]

Convert a transform class to a dictionary.

ax.storage.json_store.encoders.transition_criterion_to_dict(criterion: TransitionCriterion) dict[str, Any][source]

Convert Ax TransitionCriterion to a dictionary.

ax.storage.json_store.encoders.trial_to_dict(trial: Trial) dict[str, Any][source]

Convert Ax trial to a dictionary.

ax.storage.json_store.encoders.winsorization_config_to_dict(config: WinsorizationConfig) dict[str, Any][source]

Convert Ax winsorization config to a dictionary.

ax.storage.json_store.load module

ax.storage.json_store.load.load_experiment(filepath: str, decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>}) Experiment[source]

Load experiment from file.

  1. Read file.

  2. Convert dictionary to Ax experiment instance.

ax.storage.json_store.registry module

ax.storage.json_store.save module

ax.storage.json_store.save.save_experiment(experiment: ~ax.core.experiment.Experiment, filepath: str, encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = {<class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>: <function metric_to_dict>, <class 'ax.core.arm.Arm'>: <function arm_to_dict>, <class 'ax.core.auxiliary.AuxiliaryExperiment'>: <function auxiliary_experiment_to_dict>, <class 'ax.core.batch_trial.BatchTrial'>: <function batch_to_dict>, <class 'ax.core.data.Data'>: <function data_to_dict>, <class 'ax.core.experiment.Experiment'>: <function experiment_to_dict>, <class 'ax.core.generator_run.GeneratorRun'>: <function generator_run_to_dict>, <class 'ax.core.map_data.MapData'>: <function map_data_to_dict>, <class 'ax.core.map_data.MapKeyInfo'>: <function map_key_info_to_dict>, <class 'ax.core.map_metric.MapMetric'>: <function metric_to_dict>, <class 'ax.core.metric.Metric'>: <function metric_to_dict>, <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>: <function multi_type_experiment_to_dict>, <class 'ax.core.objective.MultiObjective'>: <function multi_objective_to_dict>, <class 'ax.core.objective.Objective'>: <function objective_to_dict>, <class 'ax.core.objective.ScalarizedObjective'>: <function scalarized_objective_to_dict>, <class 'ax.core.observation.ObservationFeatures'>: <function observation_features_to_dict>, <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>: <function multi_objective_optimization_config_to_dict>, <class 'ax.core.optimization_config.OptimizationConfig'>: <function optimization_config_to_dict>, <class 'ax.core.outcome_constraint.ObjectiveThreshold'>: <function outcome_constraint_to_dict>, <class 'ax.core.outcome_constraint.OutcomeConstraint'>: <function outcome_constraint_to_dict>, <class 'ax.core.parameter.ChoiceParameter'>: <function choice_parameter_to_dict>, <class 'ax.core.parameter.FixedParameter'>: <function fixed_parameter_to_dict>, <class 'ax.core.parameter.RangeParameter'>: <function range_parameter_to_dict>, <class 'ax.core.parameter_constraint.OrderConstraint'>: <function order_parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.ParameterConstraint'>: <function parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.SumConstraint'>: <function sum_parameter_constraint_to_dict>, <class 'ax.core.parameter_distribution.ParameterDistribution'>: <function parameter_distribution_to_dict>, <class 'ax.core.risk_measures.RiskMeasure'>: <function risk_measure_to_dict>, <class 'ax.core.search_space.HierarchicalSearchSpace'>: <function search_space_to_dict>, <class 'ax.core.search_space.RobustSearchSpace'>: <function robust_search_space_to_dict>, <class 'ax.core.search_space.SearchSpace'>: <function search_space_to_dict>, <class 'ax.core.trial.Trial'>: <function trial_to_dict>, <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>: <function percentile_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>: <function threshold_early_stopping_strategy_to_dict>, <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>: <function improvement_global_stopping_strategy_to_dict>, <class 'ax.metrics.branin.BraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin.NegativeBraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>: <function metric_to_dict>, <class 'ax.metrics.chemistry.ChemistryMetric'>: <function metric_to_dict>, <class 'ax.metrics.factorial.FactorialMetric'>: <function metric_to_dict>, <class 'ax.metrics.hartmann6.Hartmann6Metric'>: <function metric_to_dict>, <class 'ax.metrics.l2norm.L2NormMetric'>: <function metric_to_dict>, <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>: <function metric_to_dict>, <class 'ax.metrics.sklearn.SklearnMetric'>: <function metric_to_dict>, <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>: <function best_model_selector_to_dict>, <class 'ax.modelbridge.generation_node.GenerationNode'>: <function generation_node_to_dict>, <class 'ax.modelbridge.generation_node.GenerationStep'>: <function generation_step_to_dict>, <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>: <function generation_strategy_to_dict>, <class 'ax.modelbridge.model_spec.ModelSpec'>: <function model_spec_to_dict>, <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.TransitionCriterion'>: <function transition_criterion_to_dict>, <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>: <function botorch_model_to_dict>, <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>: <function surrogate_to_dict>, <class 'ax.models.winsorization_config.WinsorizationConfig'>: <function winsorization_config_to_dict>, <class 'ax.runners.synthetic.SyntheticRunner'>: <function runner_to_dict>, <class 'botorch.models.transforms.input.ChainedInputTransform'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Normalize'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Round'>: <function botorch_component_to_dict>, <class 'botorch.sampling.normal.SobolQMCNormalSampler'>: <function botorch_component_to_dict>, <class 'gpytorch.constraints.constraints.Interval'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.GammaPrior'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: <function botorch_component_to_dict>, <class 'pathlib.Path'>: <function pathlib_to_dict>, <class 'pathlib.PosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PurePath'>: <function pathlib_to_dict>, <class 'pathlib.PurePosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PureWindowsPath'>: <function pathlib_to_dict>, <class 'pathlib.WindowsPath'>: <function pathlib_to_dict>}, class_encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = {<class 'ax.modelbridge.transforms.base.Transform'>: <function transform_type_to_dict>, <class 'ax.models.torch.botorch_modular.acquisition.Acquisition'>: <function botorch_modular_to_dict>, <class 'botorch.acquisition.acquisition.AcquisitionFunction'>: <function botorch_modular_to_dict>, <class 'botorch.models.model.Model'>: <function botorch_modular_to_dict>, <class 'botorch.utils.types.DEFAULT'>: <function default_to_dict>, <class 'gpytorch.likelihoods.likelihood.Likelihood'>: <function botorch_modular_to_dict>, <class 'gpytorch.mlls.marginal_log_likelihood.MarginalLogLikelihood'>: <function botorch_modular_to_dict>, <class 'torch.nn.modules.module.Module'>: <function botorch_modular_to_dict>}) None[source]

Save experiment to file.

  1. Convert Ax experiment to JSON-serializable dictionary.

  2. Write to file.

SQLAlchemy (MySQL / SQLite)

ax.storage.sqa_store.base_decoder module

class ax.storage.sqa_store.decoder.Decoder(config: SQAConfig)[source]

Bases: object

Class that contains methods for loading an Ax experiment from SQLAlchemy.

Instantiate with an instance of Config to customize the functionality. For even more flexibility, create a subclass.

config

Metadata needed to save and load an experiment to SQLAlchemy.

abandoned_arm_from_sqa(abandoned_arm_sqa: SQAAbandonedArm) AbandonedArm[source]

Convert SQLAlchemy AbandonedArm to Ax AbandonedArm.

analysis_card_from_sqa(analysis_card_sqa: SQAAnalysisCard) AnalysisCard[source]

Convert SQLAlchemy Analysis to Ax Analysis Object.

arm_from_sqa(arm_sqa: SQAArm) Arm[source]

Convert SQLAlchemy Arm to Ax Arm.

data_from_sqa(data_sqa: ~ax.storage.sqa_store.sqa_classes.SQAData, data_constructor: type[~ax.core.data.Data] = <class 'ax.core.data.Data'>) Data[source]

Convert SQLAlchemy Data to AE Data.

environmental_variable_from_sqa(parameter_sqa: SQAParameter) Parameter[source]

Convert SQLAlchemy Parameter to Ax environmental variable.

experiment_from_sqa(experiment_sqa: SQAExperiment, reduced_state: bool = False, load_auxiliary_experiments: bool = True) Experiment[source]

Convert SQLAlchemy Experiment to Ax Experiment.

Parameters:
  • experiment_sqaSQAExperiment to decode.

  • reduced_state – Whether to load experiment with a slightly reduced state (without abandoned arms on experiment and without model state, search space, and optimization config on generator runs).

  • load_auxiliary_experiment – whether to load auxiliary experiments.

generation_strategy_from_sqa(gs_sqa: SQAGenerationStrategy, experiment: Experiment | None = None, reduced_state: bool = False) GenerationStrategy[source]

Convert SQALchemy generation strategy to Ax GenerationStrategy.

generator_run_from_sqa(generator_run_sqa: SQAGeneratorRun, reduced_state: bool, immutable_search_space_and_opt_config: bool) GeneratorRun[source]

Convert SQLAlchemy GeneratorRun to Ax GeneratorRun.

Parameters:
  • generator_run_sqaSQAGeneratorRun to decode.

  • reduced_state – Whether to load generator runs with a slightly reduced state (without model state, search space, and optimization config).

  • immutable_search_space_and_opt_config – Whether to load generator runs without search space and optimization config. Unlike reduced_state, we do still load model state.

get_enum_name(value: int | None, enum: Enum | type[Enum] | None) str | None[source]

Given an enum value (int) and an enum (of ints), return the corresponding enum name. If the value is not present in the enum, throw an error.

metric_from_sqa(metric_sqa: SQAMetric) Metric | Objective | OutcomeConstraint | RiskMeasure[source]

Convert SQLAlchemy Metric to Ax Metric, Objective, or OutcomeConstraint.

opt_config_and_tracking_metrics_from_sqa(metrics_sqa: list[SQAMetric]) tuple[OptimizationConfig | None, list[Metric]][source]

Convert a list of SQLAlchemy Metrics to a a tuple of Ax OptimizationConfig and tracking metrics.

parameter_constraint_from_sqa(parameter_constraint_sqa: SQAParameterConstraint, parameters: list[Parameter]) ParameterConstraint[source]

Convert SQLAlchemy ParameterConstraint to Ax ParameterConstraint.

parameter_distributions_from_sqa(parameter_constraint_sqa_list: list[SQAParameterConstraint]) tuple[list[ParameterDistribution], int | None][source]

Convert SQLAlchemy ParameterConstraints to Ax ParameterDistributions.

parameter_from_sqa(parameter_sqa: SQAParameter) Parameter[source]

Convert SQLAlchemy Parameter to Ax Parameter.

runner_from_sqa(runner_sqa: SQARunner) Runner[source]

Convert SQLAlchemy Runner to Ax Runner.

search_space_from_sqa(parameters_sqa: list[SQAParameter], parameter_constraints_sqa: list[SQAParameterConstraint]) SearchSpace | None[source]

Convert a list of SQLAlchemy Parameters and ParameterConstraints to an Ax SearchSpace.

trial_from_sqa(trial_sqa: SQATrial, experiment: Experiment, reduced_state: bool = False) BaseTrial[source]

Convert SQLAlchemy Trial to Ax Trial.

Parameters:
  • trial_sqaSQATrial to decode.

  • reduced_state – Whether to load trial’s generator run(s) with a slightly

  • state (reduced)

ax.storage.sqa_store.base_encoder module

class ax.storage.sqa_store.encoder.Encoder(config: SQAConfig)[source]

Bases: object

Class that contains methods for storing an Ax experiment to SQLAlchemy.

Instantiate with an instance of Config to customize the functionality. For even more flexibility, create a subclass.

config

Metadata needed to save and load an experiment to SQLAlchemy.

abandoned_arm_to_sqa(abandoned_arm: AbandonedArm) SQAAbandonedArm[source]

Convert Ax AbandonedArm to SQLAlchemy.

analysis_card_to_sqa(analysis_card: AnalysisCard, experiment_id: int, timestamp: datetime) SQAAnalysisCard[source]

Convert Ax analysis to SQLAlchemy.

arm_to_sqa(arm: Arm, weight: float | None = 1.0) SQAArm[source]

Convert Ax Arm to SQLAlchemy.

data_to_sqa(data: Data, trial_index: int | None, timestamp: int) SQAData[source]

Convert Ax data to SQLAlchemy.

environmental_variable_to_sqa(parameter: Parameter) SQAParameter[source]

Convert Ax environmental variables to SQLAlchemy.

Since these are effectively just range parameters with an associated distribution, which is stored separately, we will store these as new parameter types.

experiment_data_to_sqa(experiment: Experiment) list[SQAData][source]

Convert Ax experiment data to SQLAlchemy.

experiment_to_sqa(experiment: Experiment) SQAExperiment[source]

Convert Ax Experiment to SQLAlchemy.

In addition to creating and storing a new Experiment object, we need to create and store copies of the Trials, Metrics, Parameters, ParameterConstraints, and Runner owned by this Experiment.

generation_strategy_to_sqa(generation_strategy: GenerationStrategy, experiment_id: int | None, generator_run_reduced_state: bool = False) SQAGenerationStrategy[source]

Convert an Ax GenerationStrategy to SQLAlchemy, preserving its state, so that the restored generation strategy can be resumed from the point at which it was interrupted and stored.

generator_run_to_sqa(generator_run: GeneratorRun, weight: float | None = None, reduced_state: bool = False) SQAGeneratorRun[source]

Convert Ax GeneratorRun to SQLAlchemy.

In addition to creating and storing a new GeneratorRun object, we need to create and store copies of the Arms, Metrics, Parameters, and ParameterConstraints owned by this GeneratorRun.

get_children_metrics_by_name(metrics: list[Metric], weights: list[float]) dict[str, tuple[Metric, float, SQAMetric, tuple[int, dict[str, Any]]]][source]
get_enum_value(value: str | None, enum: Enum | type[Enum] | None) int | None[source]

Given an enum name (string) and an enum (of ints), return the corresponding enum value. If the name is not present in the enum, throw an error.

get_metric_type_and_properties(metric: Metric) tuple[int, dict[str, Any]][source]

Given an Ax Metric, convert its type into a member of MetricType enum, and construct a dictionary to be stored in the database properties json blob.

metric_to_sqa(metric: Metric) SQAMetric[source]

Convert Ax Metric to SQLAlchemy.

multi_objective_to_sqa(multi_objective: MultiObjective) SQAMetric[source]

Convert Ax Multi Objective to SQLAlchemy.

Returns: A parent SQAMetric, whose children are the SQAMetric-s

corresponding to metrics attribute of MultiObjective. NOTE: The parent is used as a placeholder for storage purposes.

objective_threshold_to_sqa(objective_threshold: ObjectiveThreshold) SQAMetric[source]

Convert Ax OutcomeConstraint to SQLAlchemy.

objective_to_sqa(objective: Objective) SQAMetric[source]

Convert Ax Objective to SQLAlchemy.

optimization_config_to_sqa(optimization_config: OptimizationConfig | None) list[SQAMetric][source]

Convert Ax OptimizationConfig to a list of SQLAlchemy Metrics.

outcome_constraint_to_sqa(outcome_constraint: OutcomeConstraint) SQAMetric[source]

Convert Ax OutcomeConstraint to SQLAlchemy.

parameter_constraint_to_sqa(parameter_constraint: ParameterConstraint) SQAParameterConstraint[source]

Convert Ax ParameterConstraint to SQLAlchemy.

parameter_distribution_to_sqa(distribution: ParameterDistribution, num_samples: int) SQAParameterConstraint[source]

Convert Ax ParameterDistribution to SQLAlchemy.

NOTE: This saves the distributions as json blobs in constraint_dict to avoid creating a new table in the short term. If robust optimization sees more usage in the long term, the proper solution would be to make a new table for these.

parameter_to_sqa(parameter: Parameter) SQAParameter[source]

Convert Ax Parameter to SQLAlchemy.

risk_measure_to_sqa(risk_measure: RiskMeasure) SQAMetric[source]

Convert Ax RiskMeasure to SQLAlchemy.

robust_search_space_to_sqa(rss: RobustSearchSpace) tuple[list[SQAParameter], list[SQAParameterConstraint]][source]
runner_to_sqa(runner: Runner, trial_type: str | None = None) SQARunner[source]

Convert Ax Runner to SQLAlchemy.

scalarized_objective_to_sqa(objective: ScalarizedObjective) SQAMetric[source]

Convert Ax Scalarized Objective to SQLAlchemy.

Returns: A parent SQAMetric, whose children are the SQAMetric-s

corresponding to metrics attribute of ScalarizedObjective. NOTE: The parent is used as a placeholder for storage purposes.

scalarized_outcome_constraint_to_sqa(outcome_constraint: ScalarizedOutcomeConstraint) SQAMetric[source]

Convert Ax SCalarized OutcomeConstraint to SQLAlchemy.

search_space_to_sqa(search_space: SearchSpace | None) tuple[list[SQAParameter], list[SQAParameterConstraint]][source]

Convert Ax SearchSpace to a list of SQLAlchemy Parameters and ParameterConstraints.

trial_to_sqa(trial: BaseTrial, generator_run_reduced_state: bool = False) SQATrial[source]

Convert Ax Trial to SQLAlchemy.

In addition to creating and storing a new Trial object, we need to create and store the GeneratorRuns and Runner that it owns.

classmethod validate_experiment_metadata(experiment: Experiment, existing_sqa_experiment_id: int | None) None[source]

Validates required experiment metadata.

ax.storage.sqa_store.db module

class ax.storage.sqa_store.db.SQABase[source]

Bases: object

Metaclass for SQLAlchemy classes corresponding to core Ax classes.

ax.storage.sqa_store.db.create_all_tables(engine: sqlalchemy.engine.base.Engine) None[source]

Create all tables that inherit from Base.

Parameters:

engine – a SQLAlchemy engine with a connection to a MySQL or SQLite DB.

Note

In order for all tables to be correctly created, all modules that define a mapped class that inherits from Base must be imported.

ax.storage.sqa_store.db.create_mysql_engine_from_creator(creator: Callable, echo: bool = False, pool_recycle: int = 10, **kwargs: Any) sqlalchemy.engine.base.Engine[source]

Create a SQLAlchemy engine with the MySQL dialect given a creator function.

Parameters:
  • creator – a callable which returns a DBAPI connection.

  • echo – if True, set engine to be verbose.

  • pool_recycle – number of seconds after which to recycle connections. -1 means no timeout. Default is 10 seconds.

  • **kwargs – keyword args passed to create_engine

Returns:

SQLAlchemy engine with connection to MySQL DB.

Return type:

Engine

ax.storage.sqa_store.db.create_mysql_engine_from_url(url: str, echo: bool = False, pool_recycle: int = 10, **kwargs: Any) sqlalchemy.engine.base.Engine[source]

Create a SQLAlchemy engine with the MySQL dialect given a database url.

Parameters:
  • url – a database url that can include username, password, hostname, database name as well as optional keyword arguments for additional configuration. e.g. dialect+driver://username:password@host:port/database.

  • echo – if True, set engine to be verbose.

  • pool_recycle – number of seconds after which to recycle connections. -1 means no timeout. Default is 10 seconds.

  • **kwargs – keyword args passed to create_engine

Returns:

SQLAlchemy engine with connection to MySQL DB.

Return type:

Engine

ax.storage.sqa_store.db.create_test_engine(path: str | None = None, echo: bool = True) sqlalchemy.engine.base.Engine[source]

Creates a SQLAlchemy engine object for use in unit tests.

Parameters:
  • path – if None, use in-memory SQLite; else attempt to create a SQLite DB in the path provided.

  • echo – if True, set engine to be verbose.

Returns:

an instance of SQLAlchemy engine.

Return type:

Engine

ax.storage.sqa_store.db.get_engine() sqlalchemy.engine.base.Engine[source]

Fetch a SQLAlchemy engine, if already initialized.

If not initialized, need to either call init_engine_and_session_factory or get_session explicitly.

Returns:

an instance of a SQLAlchemy engine with a connection to a DB.

Return type:

Engine

ax.storage.sqa_store.db.get_session() sqlalchemy.orm.Session[source]

Fetch a SQLAlchemy session with a connection to a DB.

Returns:

an instance of a SQLAlchemy session.

Return type:

Session

ax.storage.sqa_store.db.init_engine_and_session_factory(url: str | None = None, creator: Callable | None = None, echo: bool = False, force_init: bool = False, **kwargs: Any) None[source]

Initialize the global engine and SESSION_FACTORY for SQLAlchemy.

The initialization needs to only happen once. Note that it is possible to re-initialize the engine by setting the force_init flag to True, but this should only be used if you are absolutely certain that you know what you are doing.

Parameters:
  • url – a database url that can include username, password, hostname, database name as well as optional keyword arguments for additional configuration. e.g. dialect+driver://username:password@host:port/database. Either this argument or creator argument must be specified.

  • creator – a callable which returns a DBAPI connection. Either this argument or url argument must be specified.

  • echo – if True, logging for engine is enabled.

  • force_init – if True, allows re-initializing engine and session factory.

  • **kwargs – keyword arguments passed to create_mysql_engine_from_creator

ax.storage.sqa_store.db.init_test_engine_and_session_factory(tier_or_path: str | None = None, echo: bool = False, force_init: bool = False, **kwargs: Any) None[source]

Initialize the global engine and SESSION_FACTORY for SQLAlchemy, using an in-memory SQLite database.

The initialization needs to only happen once. Note that it is possible to re-initialize the engine by setting the force_init flag to True, but this should only be used if you are absolutely certain that you know what you are doing.

Parameters:
  • tier_or_path – the name of the DB tier.

  • echo – if True, logging for engine is enabled.

  • force_init – if True, allows re-initializing engine and session factory.

  • **kwargs – keyword arguments passed to create_mysql_engine_from_creator

ax.storage.sqa_store.db.session_scope() Generator[sqlalchemy.orm.Session, None, None][source]

Provide a transactional scope around a series of operations.

ax.storage.sqa_store.delete module

ax.storage.sqa_store.delete.delete_experiment(exp_name: str) None[source]

Delete experiment by name.

Parameters:

experiment_name – Name of the experiment to delete.

ax.storage.sqa_store.delete.delete_generation_strategy(exp_name: str, config: SQAConfig | None = None) None[source]

Delete the generation strategy associated with an experiment

Parameters:
  • exp_name – Name of the experiment for which the generation strategy should be deleted.

  • config – The SQAConfig.

ax.storage.sqa_store.json module

ax.storage.sqa_store.json.JSONEncodedDict

alias of JSONEncodedObject

ax.storage.sqa_store.json.JSONEncodedList

alias of JSONEncodedObject

class ax.storage.sqa_store.json.JSONEncodedLongText(*args: Any, **kwargs: Any)[source]

Bases: JSONEncodedObject

Class for JSON-encoding objects in SQLAlchemy, backed by MEDIUMTEXT (MySQL).

See description in JSONEncodedObject.

impl: VARCHAR = 4294967295
ax.storage.sqa_store.json.JSONEncodedLongTextDict

alias of JSONEncodedLongText

class ax.storage.sqa_store.json.JSONEncodedMediumText(*args: Any, **kwargs: Any)[source]

Bases: JSONEncodedObject

Class for JSON-encoding objects in SQLAlchemy, backed by MEDIUMTEXT (MySQL).

See description in JSONEncodedObject.

impl: VARCHAR = 16777215
class ax.storage.sqa_store.json.JSONEncodedObject(*args: Any, **kwargs: Any)[source]

Bases: TypeDecorator

Class for JSON-encoding objects in SQLAlchemy.

Represents an object that is automatically marshalled and unmarshalled to/from the corresponding JSON string. By itself, this data structure does not track any changes.

cache_ok = True
impl: sqlalchemy.types.VARCHAR = 4096
process_bind_param(value: Any, dialect: Any) str | None[source]
process_result_value(value: Any, dialect: Any) Any[source]
class ax.storage.sqa_store.json.JSONEncodedText(*args: Any, **kwargs: Any)[source]

Bases: JSONEncodedObject

Class for JSON-encoding objects in SQLAlchemy, backed by TEXT (MySQL).

See description in JSONEncodedObject.

ax.storage.sqa_store.json.JSONEncodedTextDict

alias of JSONEncodedText

ax.storage.sqa_store.load module

ax.storage.sqa_store.load.get_generation_strategy_id(experiment_name: str, decoder: Decoder) int | None[source]

Get DB ID of the generation strategy, associated with the experiment with the given name if its in DB, return None otherwise.

ax.storage.sqa_store.load.get_generation_strategy_sqa(gs_id: int, decoder: Decoder, query_options: list[Any] | None = None) SQAGenerationStrategy[source]

Obtains the SQLAlchemy generation strategy object from DB.

ax.storage.sqa_store.load.get_generation_strategy_sqa_reduced_state(gs_id: int, decoder: Decoder) SQAGenerationStrategy[source]

Obtains most of the SQLAlchemy generation strategy object from DB.

ax.storage.sqa_store.load.get_generator_runs_by_id(generator_run_ids: list[int], decoder: Decoder, reduced_state: bool = False, immutable_search_space_and_opt_config: bool = False) list[GeneratorRun][source]

Bulk fetches generator runs by id.

ax.storage.sqa_store.load.load_analysis_cards_by_experiment_name(experiment_name: str, config: SQAConfig | None = None) list[AnalysisCard][source]

Loads analysis cards for an experiment.

ax.storage.sqa_store.load.load_experiment(experiment_name: str, config: SQAConfig | None = None, reduced_state: bool = False, load_trials_in_batches_of_size: int | None = None, skip_runners_and_metrics: bool = False, load_auxiliary_experiments: bool = True) Experiment[source]

Load experiment by name.

Parameters:
  • experiment_name – Name of the expeirment to load.

  • configSQAConfig, from which to retrieve the decoder. Optional, defaults to base SQAConfig.

  • reduced_state – Whether to load experiment with a slightly reduced state (without abandoned arms on experiment and without model state, search space, and optimization config on generator runs).

  • skip_runners_and_metrics – If True skip loading runners, and do only a minimal load of metrics. This option is intended to enable loading of experiments that require custom runners or metrics, without depending on a registry. Note that even though the intention is to skip loading of metrics, this option converts the loaded metrics into a base metric avoiding conversion related to custom properties of the metric.

  • load_auxiliary_experiments – whether to load auxiliary experiments.

ax.storage.sqa_store.load.load_generation_strategy_by_experiment_name(experiment_name: str, config: SQAConfig | None = None, experiment: Experiment | None = None, reduced_state: bool = False, skip_runners_and_metrics: bool = False) GenerationStrategy[source]

Finds a generation strategy attached to an experiment specified by a name and restores it from its corresponding SQA object.

ax.storage.sqa_store.load.load_generation_strategy_by_id(gs_id: int, config: SQAConfig | None = None, experiment: Experiment | None = None, reduced_state: bool = False) GenerationStrategy[source]

Finds a generation strategy stored by a given ID and restores it.

ax.storage.sqa_store.save module

ax.storage.sqa_store.save.save_analysis_cards(analysis_cards: list[AnalysisCard], experiment: Experiment, config: SQAConfig | None = None) None[source]
ax.storage.sqa_store.save.save_experiment(experiment: Experiment, config: SQAConfig | None = None) None[source]

Save experiment (using default SQAConfig).

ax.storage.sqa_store.save.save_generation_strategy(generation_strategy: GenerationStrategy, config: SQAConfig | None = None) int[source]

Save generation strategy (using default SQAConfig if no config is specified). If the generation strategy has an experiment set, the experiment will be saved first.

Returns:

The ID of the saved generation strategy.

ax.storage.sqa_store.save.save_or_update_data_for_trials(experiment: Experiment, trials: list[BaseTrial], encoder: Encoder, decoder: Decoder, batch_size: int | None = None, update_trial_statuses: bool = False) None[source]
ax.storage.sqa_store.save.save_or_update_trial(experiment: Experiment, trial: BaseTrial, config: SQAConfig | None = None) None[source]

Add new trial to the experiment, or update if already exists (using default SQAConfig).

ax.storage.sqa_store.save.save_or_update_trials(experiment: Experiment, trials: list[BaseTrial], config: SQAConfig | None = None, batch_size: int | None = None, reduce_state_generator_runs: bool = False) None[source]

Add new trials to the experiment, or update if already exists (using default SQAConfig).

Note that new data objects (whether attached to existing or new trials) will also be added to the experiment, but existing data objects in the database will not be updated or removed.

ax.storage.sqa_store.save.update_generation_strategy(generation_strategy: GenerationStrategy, generator_runs: list[GeneratorRun], config: SQAConfig | None = None, batch_size: int | None = None, reduce_state_generator_runs: bool = False) None[source]

Update generation strategy’s current step and attach generator runs (using default SQAConfig).

ax.storage.sqa_store.save.update_outcome_constraint_on_experiment(experiment: Experiment, outcome_constraint: OutcomeConstraint, encoder: Encoder, decoder: Decoder) None[source]
ax.storage.sqa_store.save.update_properties_on_experiment(experiment_with_updated_properties: Experiment, config: SQAConfig | None = None) None[source]
ax.storage.sqa_store.save.update_properties_on_trial(trial_with_updated_properties: BaseTrial, config: SQAConfig | None = None) None[source]
ax.storage.sqa_store.save.update_runner_on_experiment(experiment: Experiment, runner: Runner, encoder: Encoder, decoder: Decoder) None[source]
ax.storage.sqa_store.save.update_trial_status(trial_with_updated_status: BaseTrial, config: SQAConfig | None = None) None[source]

ax.storage.sqa_store.structs module

class ax.storage.sqa_store.structs.DBSettings(creator: ~collections.abc.Callable | None = None, decoder: ~ax.storage.sqa_store.decoder.Decoder = <ax.storage.sqa_store.decoder.Decoder object>, encoder: ~ax.storage.sqa_store.encoder.Encoder = <ax.storage.sqa_store.encoder.Encoder object>, url: str | None = None)[source]

Bases: NamedTuple

Defines behavior for loading/saving experiment to/from db. Either creator or url must be specified as a way to connect to the SQL db.

creator: Callable | None

Alias for field number 0

decoder: Decoder

Alias for field number 1

encoder: Encoder

Alias for field number 2

url: str | None

Alias for field number 3

ax.storage.sqa_store.sqa_classes module

class ax.storage.sqa_store.sqa_classes.SQAAbandonedArm(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

time_abandoned

alias of IntTimestamp

class ax.storage.sqa_store.sqa_classes.SQAAnalysisCard(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

time_created

alias of IntTimestamp

class ax.storage.sqa_store.sqa_classes.SQAArm(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

class ax.storage.sqa_store.sqa_classes.SQAData(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

class ax.storage.sqa_store.sqa_classes.SQAExperiment(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

analysis_cards: List[SQAAnalysisCard] = 'SQAAnalysisCard'
data: List[SQAData] = 'SQAData'
generation_strategy: SQAGenerationStrategy | None = 'SQAGenerationStrategy'
metrics: List[SQAMetric] = 'SQAMetric'
parameter_constraints: List[SQAParameterConstraint] = 'SQAParameterConstraint'
parameters: List[SQAParameter] = 'SQAParameter'
runners: List[SQARunner] = 'SQARunner'
time_created

alias of IntTimestamp

trials: List[SQATrial] = 'SQATrial'
class ax.storage.sqa_store.sqa_classes.SQAGenerationStrategy(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

generator_runs: List[SQAGeneratorRun] = 'SQAGeneratorRun'
class ax.storage.sqa_store.sqa_classes.SQAGeneratorRun(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

arms: List[SQAArm] = 'SQAArm'
metrics: List[SQAMetric] = 'SQAMetric'
parameter_constraints: List[SQAParameterConstraint] = 'SQAParameterConstraint'
parameters: List[SQAParameter] = 'SQAParameter'
time_created

alias of IntTimestamp

class ax.storage.sqa_store.sqa_classes.SQAMetric(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

scalarized_objective_children_metrics: List['SQAMetric'] = 'SQAMetric'
scalarized_outcome_constraint_children_metrics: List['SQAMetric'] = 'SQAMetric'
class ax.storage.sqa_store.sqa_classes.SQAParameter(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

dependents

alias of JSONEncodedObject

fixed_value

alias of JSONEncodedObject

target_value

alias of JSONEncodedObject

class ax.storage.sqa_store.sqa_classes.SQAParameterConstraint(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

class ax.storage.sqa_store.sqa_classes.SQARunner(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

class ax.storage.sqa_store.sqa_classes.SQATrial(*args: Any, **kwargs: Any)[source]

Bases: declarative_base

abandoned_arms: List[SQAAbandonedArm] = 'SQAAbandonedArm'
generator_runs: List[SQAGeneratorRun] = 'SQAGeneratorRun'
is_batch: Column[bool] = 'is_batched'
runner: SQARunner = 'SQARunner'
time_completed

alias of IntTimestamp

time_created

alias of IntTimestamp

time_run_started

alias of IntTimestamp

time_staged

alias of IntTimestamp

ax.storage.sqa_store.sqa_config module

class ax.storage.sqa_store.sqa_config.SQAConfig(class_to_sqa_class: dict[type[~ax.utils.common.base.Base], type[~ax.storage.sqa_store.db.SQABase]] = <factory>, experiment_type_enum: ~enum.Enum | type[~enum.Enum] | None = None, generator_run_type_enum: ~enum.Enum | type[~enum.Enum] | None = <enum 'GeneratorRunType'>, auxiliary_experiment_purpose_enum: type[~enum.Enum] = <enum 'AuxiliaryExperimentPurpose'>, json_encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = <factory>, json_class_encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = <factory>, json_decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = <factory>, json_class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = <factory>, metric_registry: dict[type[~ax.core.metric.Metric], int] = <factory>, runner_registry: dict[type[~ax.core.runner.Runner], int] = <factory>)[source]

Bases: object

Metadata needed to save and load an experiment to SQLAlchemy.

class_to_sqa_class

Mapping of user-facing class to SQLAlchemy class that it will be encoded to. This allows overwriting of the default classes to provide custom save functionality.

Type:

dict[type[ax.utils.common.base.Base], type[ax.storage.sqa_store.db.SQABase]]

experiment_type_enum

Enum containing valid Experiment types.

Type:

enum.Enum | type[enum.Enum] | None

generator_run_type_enum

Enum containing valid Generator Run types.

Type:

enum.Enum | type[enum.Enum] | None

json_encoder_registry

Mapping from user-facing types to their json serialization function.

Type:

dict[type, collections.abc.Callable[[Any], dict[str, Any]]]

auxiliary_experiment_purpose_enum

alias of AuxiliaryExperimentPurpose

class_to_sqa_class: dict[type[Base], type[SQABase]]
experiment_type_enum: Enum | type[Enum] | None = None
generator_run_type_enum

alias of GeneratorRunType

json_class_decoder_registry: dict[str, Callable[[dict[str, Any]], Any]]
json_class_encoder_registry: dict[type, Callable[[Any], dict[str, Any]]]
json_decoder_registry: dict[str, type[T] | Callable[[...], T]]
json_encoder_registry: dict[type, Callable[[Any], dict[str, Any]]]
metric_registry: dict[type[Metric], int]
property reverse_metric_registry: dict[int, type[Metric]]
property reverse_runner_registry: dict[int, type[Runner]]
runner_registry: dict[type[Runner], int]

ax.storage.sqa_store.sqa_enum module

class ax.storage.sqa_store.sqa_enum.BaseNullableEnum(*args: Any, **kwargs: Any)[source]

Bases: TypeDecorator

cache_ok = True
process_bind_param(value: Any, dialect: Any) Any[source]
process_result_value(value: Any, dialect: Any) Any[source]
class ax.storage.sqa_store.sqa_enum.IntEnum(*args: Any, **kwargs: Any)[source]

Bases: BaseNullableEnum

class ax.storage.sqa_store.sqa_enum.StringEnum(*args: Any, **kwargs: Any)[source]

Bases: BaseNullableEnum

impl = 100

ax.storage.sqa_store.timestamp module

class ax.storage.sqa_store.timestamp.IntTimestamp(*args: Any, **kwargs: Any)[source]

Bases: TypeDecorator

cache_ok = True
process_bind_param(value: datetime | None, dialect: sqlalchemy.engine.interfaces.Dialect) int | None[source]
process_result_value(value: int | None, dialect: sqlalchemy.engine.interfaces.Dialect) datetime | None[source]

ax.storage.sqa_store.utils module

ax.storage.sqa_store.utils.copy_db_ids(source: Any, target: Any, path: list[str] | None = None) None[source]

Takes as input two objects, source and target, that should be identical, except that source has _db_ids set and target doesn’t. Recursively copies the _db_ids from source to target.

Raise a SQADecodeError when the assumption of equality on source and target is violated, since this method is meant to be used when returning a new user-facing object after saving.

ax.storage.sqa_store.utils.is_foreign_key_field(field: str) bool[source]

Return true if field name is a foreign key field, i.e. ends in _id.

ax.storage.sqa_store.validation module

ax.storage.sqa_store.validation.consistency_exactly_one(instance: SQABase, exactly_one_fields: list[str]) Any[source]

Ensure that exactly one of exactly_one_fields has a value set.

ax.storage.sqa_store.validation.do_not_set_existing_value_to_null(instance: SQABase, new_value: T, old_value: T, initiator_event: sqlalchemy.event.Events) T[source]
ax.storage.sqa_store.validation.listens_for_multiple(targets: list[sqlalchemy.orm.attributes.InstrumentedAttribute], identifier: str, *args: Any, **kwargs: Any) Callable[source]

Analogue of SQLAlchemy listen_for, but applies the same listening handler function to multiple instrumented attributes.

ax.storage.sqa_store.reduced_state module

ax.storage.sqa_store.reduced_state.get_query_options_to_defer_immutable_duplicates() list[sqlalchemy.orm.strategy_options.Load][source]

Returns the query options that defer loading of attributes that are duplicated on each trial (like search space attributes and metrics). These attributes do not need to be loaded for experiments with immutable search space and optimization configuration.

ax.storage.sqa_store.reduced_state.get_query_options_to_defer_large_model_cols() list[sqlalchemy.orm.strategy_options.Load][source]

Returns the query options that defer loading of model-state-related columns of generator runs, which can be large and are not needed on every generator run when loading experiment and generation strategy in reduced state.

Registries

ax.storage.botorch_modular_registry.ACQUISITION_FUNCTION_REGISTRY: dict[type[AcquisitionFunction], str] = {<class 'botorch.acquisition.analytic.ExpectedImprovement'>: 'ExpectedImprovement', <class 'botorch.acquisition.analytic.LogExpectedImprovement'>: 'LogExpectedImprovement', <class 'botorch.acquisition.analytic.LogNoisyExpectedImprovement'>: 'LogNoisyExpectedImprovement', <class 'botorch.acquisition.analytic.NoisyExpectedImprovement'>: 'NoisyExpectedImprovement', <class 'botorch.acquisition.knowledge_gradient.qKnowledgeGradient'>: 'qKnowledgeGradient', <class 'botorch.acquisition.knowledge_gradient.qMultiFidelityKnowledgeGradient'>: 'qMultiFidelityKnowledgeGradient', <class 'botorch.acquisition.logei.qLogExpectedImprovement'>: 'qLogExpectedImprovement', <class 'botorch.acquisition.logei.qLogNoisyExpectedImprovement'>: 'qLogNoisyExpectedImprovement', <class 'botorch.acquisition.max_value_entropy_search.qMaxValueEntropy'>: 'qMaxValueEntropy', <class 'botorch.acquisition.max_value_entropy_search.qMultiFidelityMaxValueEntropy'>: 'qMultiFidelityMaxValueEntropy', <class 'botorch.acquisition.monte_carlo.qExpectedImprovement'>: 'qExpectedImprovement', <class 'botorch.acquisition.monte_carlo.qNoisyExpectedImprovement'>: 'qNoisyExpectedImprovement', <class 'botorch.acquisition.multi_objective.logei.qLogExpectedHypervolumeImprovement'>: 'qLogExpectedHypervolumeImprovement', <class 'botorch.acquisition.multi_objective.logei.qLogNoisyExpectedHypervolumeImprovement'>: 'qLogNoisyExpectedHypervolumeImprovement', <class 'botorch.acquisition.multi_objective.monte_carlo.qExpectedHypervolumeImprovement'>: 'qExpectedHypervolumeImprovement', <class 'botorch.acquisition.multi_objective.monte_carlo.qNoisyExpectedHypervolumeImprovement'>: 'qNoisyExpectedHypervolumeImprovement', <class 'botorch.acquisition.multi_objective.parego.qLogNParEGO'>: 'qLogNParEGO', <class 'botorch.acquisition.preference.AnalyticExpectedUtilityOfBestOption'>: 'AnalyticExpectedUtilityOfBestOption'}

Mapping of BoTorch MarginalLogLikelihood classes to class name strings.

ax.storage.botorch_modular_registry.ACQUISITION_REGISTRY: dict[type[Acquisition], str] = {<class 'ax.models.torch.botorch_modular.acquisition.Acquisition'>: 'Acquisition', <class 'ax.models.torch.botorch_modular.sebo.SEBOAcquisition'>: 'SEBOAcquisition'}

Mapping of BoTorch Model classes to class name strings.

ax.storage.botorch_modular_registry.CLASS_TO_REGISTRY: dict[Any, dict[type[Any], str]] = {<class 'ax.models.torch.botorch_modular.acquisition.Acquisition'>: {<class 'ax.models.torch.botorch_modular.acquisition.Acquisition'>: 'Acquisition', <class 'ax.models.torch.botorch_modular.sebo.SEBOAcquisition'>: 'SEBOAcquisition'}, <class 'botorch.acquisition.acquisition.AcquisitionFunction'>: {<class 'botorch.acquisition.analytic.ExpectedImprovement'>: 'ExpectedImprovement', <class 'botorch.acquisition.analytic.LogExpectedImprovement'>: 'LogExpectedImprovement', <class 'botorch.acquisition.analytic.LogNoisyExpectedImprovement'>: 'LogNoisyExpectedImprovement', <class 'botorch.acquisition.analytic.NoisyExpectedImprovement'>: 'NoisyExpectedImprovement', <class 'botorch.acquisition.knowledge_gradient.qKnowledgeGradient'>: 'qKnowledgeGradient', <class 'botorch.acquisition.knowledge_gradient.qMultiFidelityKnowledgeGradient'>: 'qMultiFidelityKnowledgeGradient', <class 'botorch.acquisition.logei.qLogExpectedImprovement'>: 'qLogExpectedImprovement', <class 'botorch.acquisition.logei.qLogNoisyExpectedImprovement'>: 'qLogNoisyExpectedImprovement', <class 'botorch.acquisition.max_value_entropy_search.qMaxValueEntropy'>: 'qMaxValueEntropy', <class 'botorch.acquisition.max_value_entropy_search.qMultiFidelityMaxValueEntropy'>: 'qMultiFidelityMaxValueEntropy', <class 'botorch.acquisition.monte_carlo.qExpectedImprovement'>: 'qExpectedImprovement', <class 'botorch.acquisition.monte_carlo.qNoisyExpectedImprovement'>: 'qNoisyExpectedImprovement', <class 'botorch.acquisition.multi_objective.logei.qLogExpectedHypervolumeImprovement'>: 'qLogExpectedHypervolumeImprovement', <class 'botorch.acquisition.multi_objective.logei.qLogNoisyExpectedHypervolumeImprovement'>: 'qLogNoisyExpectedHypervolumeImprovement', <class 'botorch.acquisition.multi_objective.monte_carlo.qExpectedHypervolumeImprovement'>: 'qExpectedHypervolumeImprovement', <class 'botorch.acquisition.multi_objective.monte_carlo.qNoisyExpectedHypervolumeImprovement'>: 'qNoisyExpectedHypervolumeImprovement', <class 'botorch.acquisition.multi_objective.parego.qLogNParEGO'>: 'qLogNParEGO', <class 'botorch.acquisition.preference.AnalyticExpectedUtilityOfBestOption'>: 'AnalyticExpectedUtilityOfBestOption'}, <class 'botorch.models.model.Model'>: {<class 'botorch.models.contextual.LCEAGP'>: 'LCEAGP', <class 'botorch.models.fully_bayesian.SaasFullyBayesianSingleTaskGP'>: 'SaasFullyBayesianSingleTaskGP', <class 'botorch.models.fully_bayesian_multitask.SaasFullyBayesianMultiTaskGP'>: 'SaasFullyBayesianMultiTaskGP', <class 'botorch.models.gp_regression.SingleTaskGP'>: 'SingleTaskGP', <class 'botorch.models.gp_regression_fidelity.SingleTaskMultiFidelityGP'>: 'SingleTaskMultiFidelityGP', <class 'botorch.models.gp_regression_mixed.MixedSingleTaskGP'>: 'MixedSingleTaskGP', <class 'botorch.models.model_list_gp_regression.ModelListGP'>: 'ModelListGP', <class 'botorch.models.multitask.MultiTaskGP'>: 'MultiTaskGP'}, <class 'botorch.models.transforms.input.InputTransform'>: {<class 'botorch.models.transforms.input.ChainedInputTransform'>: 'ChainedInputTransform', <class 'botorch.models.transforms.input.InputPerturbation'>: 'InputPerturbation', <class 'botorch.models.transforms.input.Normalize'>: 'Normalize', <class 'botorch.models.transforms.input.Round'>: 'Round', <class 'botorch.models.transforms.input.Warp'>: 'Warp'}, <class 'botorch.models.transforms.outcome.OutcomeTransform'>: {<class 'botorch.models.transforms.outcome.ChainedOutcomeTransform'>: 'ChainedOutcomeTransform', <class 'botorch.models.transforms.outcome.Standardize'>: 'Standardize'}, <class 'botorch.sampling.normal.SobolQMCNormalSampler'>: {<class 'botorch.sampling.normal.SobolQMCNormalSampler'>: 'SobolQMCNormalSampler', <class 'gpytorch.constraints.constraints.Interval'>: 'Interval', <class 'gpytorch.priors.torch_priors.GammaPrior'>: 'GammaPrior', <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: 'LogNormalPrior'}, <class 'gpytorch.constraints.constraints.Interval'>: {<class 'botorch.sampling.normal.SobolQMCNormalSampler'>: 'SobolQMCNormalSampler', <class 'gpytorch.constraints.constraints.Interval'>: 'Interval', <class 'gpytorch.priors.torch_priors.GammaPrior'>: 'GammaPrior', <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: 'LogNormalPrior'}, <class 'gpytorch.kernels.kernel.Kernel'>: {<class 'ax.models.torch.botorch_modular.kernels.ScaleMaternKernel'>: 'ScaleMaternKernel', <class 'gpytorch.kernels.linear_kernel.LinearKernel'>: 'LinearKernel', <class 'gpytorch.kernels.rbf_kernel.RBFKernel'>: 'RBFKernel'}, <class 'gpytorch.likelihoods.likelihood.Likelihood'>: {<class 'gpytorch.likelihoods.gaussian_likelihood.GaussianLikelihood'>: 'GaussianLikelihood'}, <class 'gpytorch.mlls.marginal_log_likelihood.MarginalLogLikelihood'>: {<class 'gpytorch.mlls.exact_marginal_log_likelihood.ExactMarginalLogLikelihood'>: 'ExactMarginalLogLikelihood', <class 'gpytorch.mlls.leave_one_out_pseudo_likelihood.LeaveOneOutPseudoLikelihood'>: 'LeaveOneOutPseudoLikelihood', <class 'gpytorch.mlls.sum_marginal_log_likelihood.SumMarginalLogLikelihood'>: 'SumMarginalLogLikelihood'}, <class 'gpytorch.priors.torch_priors.GammaPrior'>: {<class 'botorch.sampling.normal.SobolQMCNormalSampler'>: 'SobolQMCNormalSampler', <class 'gpytorch.constraints.constraints.Interval'>: 'Interval', <class 'gpytorch.priors.torch_priors.GammaPrior'>: 'GammaPrior', <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: 'LogNormalPrior'}, <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: {<class 'botorch.sampling.normal.SobolQMCNormalSampler'>: 'SobolQMCNormalSampler', <class 'gpytorch.constraints.constraints.Interval'>: 'Interval', <class 'gpytorch.priors.torch_priors.GammaPrior'>: 'GammaPrior', <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: 'LogNormalPrior'}}

Reverse registries for decoding.

ax.storage.botorch_modular_registry.GPYTORCH_COMPONENT_REGISTRY: dict[type[Module], str] = {<class 'botorch.sampling.normal.SobolQMCNormalSampler'>: 'SobolQMCNormalSampler', <class 'gpytorch.constraints.constraints.Interval'>: 'Interval', <class 'gpytorch.priors.torch_priors.GammaPrior'>: 'GammaPrior', <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: 'LogNormalPrior'}

Mapping of BoTorch InputTransform classes to class name strings.

ax.storage.botorch_modular_registry.INPUT_TRANSFORM_REGISTRY: dict[type[InputTransform], str] = {<class 'botorch.models.transforms.input.ChainedInputTransform'>: 'ChainedInputTransform', <class 'botorch.models.transforms.input.InputPerturbation'>: 'InputPerturbation', <class 'botorch.models.transforms.input.Normalize'>: 'Normalize', <class 'botorch.models.transforms.input.Round'>: 'Round', <class 'botorch.models.transforms.input.Warp'>: 'Warp'}

Mapping of BoTorch OutcomeTransform classes to class name strings.

ax.storage.botorch_modular_registry.MODEL_REGISTRY: dict[type[Model], str] = {<class 'botorch.models.contextual.LCEAGP'>: 'LCEAGP', <class 'botorch.models.fully_bayesian.SaasFullyBayesianSingleTaskGP'>: 'SaasFullyBayesianSingleTaskGP', <class 'botorch.models.fully_bayesian_multitask.SaasFullyBayesianMultiTaskGP'>: 'SaasFullyBayesianMultiTaskGP', <class 'botorch.models.gp_regression.SingleTaskGP'>: 'SingleTaskGP', <class 'botorch.models.gp_regression_fidelity.SingleTaskMultiFidelityGP'>: 'SingleTaskMultiFidelityGP', <class 'botorch.models.gp_regression_mixed.MixedSingleTaskGP'>: 'MixedSingleTaskGP', <class 'botorch.models.model_list_gp_regression.ModelListGP'>: 'ModelListGP', <class 'botorch.models.multitask.MultiTaskGP'>: 'MultiTaskGP'}

Mapping of Botorch AcquisitionFunction classes to class name strings.

ax.storage.botorch_modular_registry.OUTCOME_TRANSFORM_REGISTRY: dict[type[OutcomeTransform], str] = {<class 'botorch.models.transforms.outcome.ChainedOutcomeTransform'>: 'ChainedOutcomeTransform', <class 'botorch.models.transforms.outcome.Standardize'>: 'Standardize'}

Overarching mapping from encoded classes to registry map.

ax.storage.botorch_modular_registry.REVERSE_OUTCOME_TRANSFORM_REGISTRY: dict[str, type[OutcomeTransform]] = {'ChainedOutcomeTransform': <class 'botorch.models.transforms.outcome.ChainedOutcomeTransform'>, 'Standardize': <class 'botorch.models.transforms.outcome.Standardize'>}

Overarching mapping from encoded classes to reverse registry map.

ax.storage.botorch_modular_registry.register_acquisition(acq_class: type[Acquisition]) None[source]

Add a custom acquisition class to the SQA and JSON registries.

ax.storage.botorch_modular_registry.register_acquisition_function(acqf_class: type[AcquisitionFunction]) None[source]

Add a custom acquisition class to the SQA and JSON registries.

ax.storage.botorch_modular_registry.register_kernel(kernel_class: type[Kernel]) None[source]

Add a custom kernel class to the SQA and JSON registries.

ax.storage.botorch_modular_registry.register_model(model_class: type[Model]) None[source]

Add a custom model class to the SQA and JSON registries.

ax.storage.metric_registry.logger: Logger = <Logger ax.storage.metric_registry (INFO)>

Mapping of Metric classes to ints.

All metrics will be stored in the same table in the database. When saving, we look up the metric subclass in METRIC_REGISTRY, and store the corresponding type field in the database.

ax.storage.metric_registry.register_metrics(metric_clss: dict[type[~ax.core.metric.Metric], int | None], encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = {<class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>: <function metric_to_dict>, <class 'ax.core.arm.Arm'>: <function arm_to_dict>, <class 'ax.core.auxiliary.AuxiliaryExperiment'>: <function auxiliary_experiment_to_dict>, <class 'ax.core.batch_trial.BatchTrial'>: <function batch_to_dict>, <class 'ax.core.data.Data'>: <function data_to_dict>, <class 'ax.core.experiment.Experiment'>: <function experiment_to_dict>, <class 'ax.core.generator_run.GeneratorRun'>: <function generator_run_to_dict>, <class 'ax.core.map_data.MapData'>: <function map_data_to_dict>, <class 'ax.core.map_data.MapKeyInfo'>: <function map_key_info_to_dict>, <class 'ax.core.map_metric.MapMetric'>: <function metric_to_dict>, <class 'ax.core.metric.Metric'>: <function metric_to_dict>, <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>: <function multi_type_experiment_to_dict>, <class 'ax.core.objective.MultiObjective'>: <function multi_objective_to_dict>, <class 'ax.core.objective.Objective'>: <function objective_to_dict>, <class 'ax.core.objective.ScalarizedObjective'>: <function scalarized_objective_to_dict>, <class 'ax.core.observation.ObservationFeatures'>: <function observation_features_to_dict>, <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>: <function multi_objective_optimization_config_to_dict>, <class 'ax.core.optimization_config.OptimizationConfig'>: <function optimization_config_to_dict>, <class 'ax.core.outcome_constraint.ObjectiveThreshold'>: <function outcome_constraint_to_dict>, <class 'ax.core.outcome_constraint.OutcomeConstraint'>: <function outcome_constraint_to_dict>, <class 'ax.core.parameter.ChoiceParameter'>: <function choice_parameter_to_dict>, <class 'ax.core.parameter.FixedParameter'>: <function fixed_parameter_to_dict>, <class 'ax.core.parameter.RangeParameter'>: <function range_parameter_to_dict>, <class 'ax.core.parameter_constraint.OrderConstraint'>: <function order_parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.ParameterConstraint'>: <function parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.SumConstraint'>: <function sum_parameter_constraint_to_dict>, <class 'ax.core.parameter_distribution.ParameterDistribution'>: <function parameter_distribution_to_dict>, <class 'ax.core.risk_measures.RiskMeasure'>: <function risk_measure_to_dict>, <class 'ax.core.search_space.HierarchicalSearchSpace'>: <function search_space_to_dict>, <class 'ax.core.search_space.RobustSearchSpace'>: <function robust_search_space_to_dict>, <class 'ax.core.search_space.SearchSpace'>: <function search_space_to_dict>, <class 'ax.core.trial.Trial'>: <function trial_to_dict>, <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>: <function percentile_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>: <function threshold_early_stopping_strategy_to_dict>, <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>: <function improvement_global_stopping_strategy_to_dict>, <class 'ax.metrics.branin.BraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin.NegativeBraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>: <function metric_to_dict>, <class 'ax.metrics.chemistry.ChemistryMetric'>: <function metric_to_dict>, <class 'ax.metrics.factorial.FactorialMetric'>: <function metric_to_dict>, <class 'ax.metrics.hartmann6.Hartmann6Metric'>: <function metric_to_dict>, <class 'ax.metrics.l2norm.L2NormMetric'>: <function metric_to_dict>, <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>: <function metric_to_dict>, <class 'ax.metrics.sklearn.SklearnMetric'>: <function metric_to_dict>, <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>: <function best_model_selector_to_dict>, <class 'ax.modelbridge.generation_node.GenerationNode'>: <function generation_node_to_dict>, <class 'ax.modelbridge.generation_node.GenerationStep'>: <function generation_step_to_dict>, <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>: <function generation_strategy_to_dict>, <class 'ax.modelbridge.model_spec.ModelSpec'>: <function model_spec_to_dict>, <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.TransitionCriterion'>: <function transition_criterion_to_dict>, <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>: <function botorch_model_to_dict>, <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>: <function surrogate_to_dict>, <class 'ax.models.winsorization_config.WinsorizationConfig'>: <function winsorization_config_to_dict>, <class 'ax.runners.synthetic.SyntheticRunner'>: <function runner_to_dict>, <class 'botorch.models.transforms.input.ChainedInputTransform'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Normalize'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Round'>: <function botorch_component_to_dict>, <class 'botorch.sampling.normal.SobolQMCNormalSampler'>: <function botorch_component_to_dict>, <class 'gpytorch.constraints.constraints.Interval'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.GammaPrior'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: <function botorch_component_to_dict>, <class 'pathlib.Path'>: <function pathlib_to_dict>, <class 'pathlib.PosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PurePath'>: <function pathlib_to_dict>, <class 'pathlib.PurePosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PureWindowsPath'>: <function pathlib_to_dict>, <class 'pathlib.WindowsPath'>: <function pathlib_to_dict>}, decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}) tuple[dict[type[Metric], int], dict[type, Callable[[Any], dict[str, Any]]], dict[str, type[T] | Callable[[...], T]]][source]

Add custom metric classes to the SQA and JSON registries. For the SQA registry, if no int is specified, use a hash of the class name.

ax.storage.runner_registry.register_runner(runner_cls: type[~ax.core.runner.Runner], runner_registry: dict[type[~ax.core.runner.Runner], int] = {<class 'ax.runners.synthetic.SyntheticRunner'>: 0}, encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = {<class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>: <function metric_to_dict>, <class 'ax.core.arm.Arm'>: <function arm_to_dict>, <class 'ax.core.auxiliary.AuxiliaryExperiment'>: <function auxiliary_experiment_to_dict>, <class 'ax.core.batch_trial.BatchTrial'>: <function batch_to_dict>, <class 'ax.core.data.Data'>: <function data_to_dict>, <class 'ax.core.experiment.Experiment'>: <function experiment_to_dict>, <class 'ax.core.generator_run.GeneratorRun'>: <function generator_run_to_dict>, <class 'ax.core.map_data.MapData'>: <function map_data_to_dict>, <class 'ax.core.map_data.MapKeyInfo'>: <function map_key_info_to_dict>, <class 'ax.core.map_metric.MapMetric'>: <function metric_to_dict>, <class 'ax.core.metric.Metric'>: <function metric_to_dict>, <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>: <function multi_type_experiment_to_dict>, <class 'ax.core.objective.MultiObjective'>: <function multi_objective_to_dict>, <class 'ax.core.objective.Objective'>: <function objective_to_dict>, <class 'ax.core.objective.ScalarizedObjective'>: <function scalarized_objective_to_dict>, <class 'ax.core.observation.ObservationFeatures'>: <function observation_features_to_dict>, <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>: <function multi_objective_optimization_config_to_dict>, <class 'ax.core.optimization_config.OptimizationConfig'>: <function optimization_config_to_dict>, <class 'ax.core.outcome_constraint.ObjectiveThreshold'>: <function outcome_constraint_to_dict>, <class 'ax.core.outcome_constraint.OutcomeConstraint'>: <function outcome_constraint_to_dict>, <class 'ax.core.parameter.ChoiceParameter'>: <function choice_parameter_to_dict>, <class 'ax.core.parameter.FixedParameter'>: <function fixed_parameter_to_dict>, <class 'ax.core.parameter.RangeParameter'>: <function range_parameter_to_dict>, <class 'ax.core.parameter_constraint.OrderConstraint'>: <function order_parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.ParameterConstraint'>: <function parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.SumConstraint'>: <function sum_parameter_constraint_to_dict>, <class 'ax.core.parameter_distribution.ParameterDistribution'>: <function parameter_distribution_to_dict>, <class 'ax.core.risk_measures.RiskMeasure'>: <function risk_measure_to_dict>, <class 'ax.core.search_space.HierarchicalSearchSpace'>: <function search_space_to_dict>, <class 'ax.core.search_space.RobustSearchSpace'>: <function robust_search_space_to_dict>, <class 'ax.core.search_space.SearchSpace'>: <function search_space_to_dict>, <class 'ax.core.trial.Trial'>: <function trial_to_dict>, <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>: <function percentile_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>: <function threshold_early_stopping_strategy_to_dict>, <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>: <function improvement_global_stopping_strategy_to_dict>, <class 'ax.metrics.branin.BraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin.NegativeBraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>: <function metric_to_dict>, <class 'ax.metrics.chemistry.ChemistryMetric'>: <function metric_to_dict>, <class 'ax.metrics.factorial.FactorialMetric'>: <function metric_to_dict>, <class 'ax.metrics.hartmann6.Hartmann6Metric'>: <function metric_to_dict>, <class 'ax.metrics.l2norm.L2NormMetric'>: <function metric_to_dict>, <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>: <function metric_to_dict>, <class 'ax.metrics.sklearn.SklearnMetric'>: <function metric_to_dict>, <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>: <function best_model_selector_to_dict>, <class 'ax.modelbridge.generation_node.GenerationNode'>: <function generation_node_to_dict>, <class 'ax.modelbridge.generation_node.GenerationStep'>: <function generation_step_to_dict>, <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>: <function generation_strategy_to_dict>, <class 'ax.modelbridge.model_spec.ModelSpec'>: <function model_spec_to_dict>, <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.TransitionCriterion'>: <function transition_criterion_to_dict>, <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>: <function botorch_model_to_dict>, <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>: <function surrogate_to_dict>, <class 'ax.models.winsorization_config.WinsorizationConfig'>: <function winsorization_config_to_dict>, <class 'ax.runners.synthetic.SyntheticRunner'>: <function runner_to_dict>, <class 'botorch.models.transforms.input.ChainedInputTransform'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Normalize'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Round'>: <function botorch_component_to_dict>, <class 'botorch.sampling.normal.SobolQMCNormalSampler'>: <function botorch_component_to_dict>, <class 'gpytorch.constraints.constraints.Interval'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.GammaPrior'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: <function botorch_component_to_dict>, <class 'pathlib.Path'>: <function pathlib_to_dict>, <class 'pathlib.PosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PurePath'>: <function pathlib_to_dict>, <class 'pathlib.PurePosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PureWindowsPath'>: <function pathlib_to_dict>, <class 'pathlib.WindowsPath'>: <function pathlib_to_dict>}, decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, val: int | None = None) tuple[dict[type[Runner], int], dict[type, Callable[[Any], dict[str, Any]]], dict[str, type[T] | Callable[[...], T]]][source]

Add a custom runner class to the SQA and JSON registries. For the SQA registry, if no int is specified, use a hash of the class name.

ax.storage.runner_registry.register_runners(runner_clss: dict[type[~ax.core.runner.Runner], int | None], runner_registry: dict[type[~ax.core.runner.Runner], int] = {<class 'ax.runners.synthetic.SyntheticRunner'>: 0}, encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = {<class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>: <function metric_to_dict>, <class 'ax.core.arm.Arm'>: <function arm_to_dict>, <class 'ax.core.auxiliary.AuxiliaryExperiment'>: <function auxiliary_experiment_to_dict>, <class 'ax.core.batch_trial.BatchTrial'>: <function batch_to_dict>, <class 'ax.core.data.Data'>: <function data_to_dict>, <class 'ax.core.experiment.Experiment'>: <function experiment_to_dict>, <class 'ax.core.generator_run.GeneratorRun'>: <function generator_run_to_dict>, <class 'ax.core.map_data.MapData'>: <function map_data_to_dict>, <class 'ax.core.map_data.MapKeyInfo'>: <function map_key_info_to_dict>, <class 'ax.core.map_metric.MapMetric'>: <function metric_to_dict>, <class 'ax.core.metric.Metric'>: <function metric_to_dict>, <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>: <function multi_type_experiment_to_dict>, <class 'ax.core.objective.MultiObjective'>: <function multi_objective_to_dict>, <class 'ax.core.objective.Objective'>: <function objective_to_dict>, <class 'ax.core.objective.ScalarizedObjective'>: <function scalarized_objective_to_dict>, <class 'ax.core.observation.ObservationFeatures'>: <function observation_features_to_dict>, <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>: <function multi_objective_optimization_config_to_dict>, <class 'ax.core.optimization_config.OptimizationConfig'>: <function optimization_config_to_dict>, <class 'ax.core.outcome_constraint.ObjectiveThreshold'>: <function outcome_constraint_to_dict>, <class 'ax.core.outcome_constraint.OutcomeConstraint'>: <function outcome_constraint_to_dict>, <class 'ax.core.parameter.ChoiceParameter'>: <function choice_parameter_to_dict>, <class 'ax.core.parameter.FixedParameter'>: <function fixed_parameter_to_dict>, <class 'ax.core.parameter.RangeParameter'>: <function range_parameter_to_dict>, <class 'ax.core.parameter_constraint.OrderConstraint'>: <function order_parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.ParameterConstraint'>: <function parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.SumConstraint'>: <function sum_parameter_constraint_to_dict>, <class 'ax.core.parameter_distribution.ParameterDistribution'>: <function parameter_distribution_to_dict>, <class 'ax.core.risk_measures.RiskMeasure'>: <function risk_measure_to_dict>, <class 'ax.core.search_space.HierarchicalSearchSpace'>: <function search_space_to_dict>, <class 'ax.core.search_space.RobustSearchSpace'>: <function robust_search_space_to_dict>, <class 'ax.core.search_space.SearchSpace'>: <function search_space_to_dict>, <class 'ax.core.trial.Trial'>: <function trial_to_dict>, <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>: <function percentile_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>: <function threshold_early_stopping_strategy_to_dict>, <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>: <function improvement_global_stopping_strategy_to_dict>, <class 'ax.metrics.branin.BraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin.NegativeBraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>: <function metric_to_dict>, <class 'ax.metrics.chemistry.ChemistryMetric'>: <function metric_to_dict>, <class 'ax.metrics.factorial.FactorialMetric'>: <function metric_to_dict>, <class 'ax.metrics.hartmann6.Hartmann6Metric'>: <function metric_to_dict>, <class 'ax.metrics.l2norm.L2NormMetric'>: <function metric_to_dict>, <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>: <function metric_to_dict>, <class 'ax.metrics.sklearn.SklearnMetric'>: <function metric_to_dict>, <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>: <function best_model_selector_to_dict>, <class 'ax.modelbridge.generation_node.GenerationNode'>: <function generation_node_to_dict>, <class 'ax.modelbridge.generation_node.GenerationStep'>: <function generation_step_to_dict>, <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>: <function generation_strategy_to_dict>, <class 'ax.modelbridge.model_spec.ModelSpec'>: <function model_spec_to_dict>, <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.TransitionCriterion'>: <function transition_criterion_to_dict>, <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>: <function botorch_model_to_dict>, <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>: <function surrogate_to_dict>, <class 'ax.models.winsorization_config.WinsorizationConfig'>: <function winsorization_config_to_dict>, <class 'ax.runners.synthetic.SyntheticRunner'>: <function runner_to_dict>, <class 'botorch.models.transforms.input.ChainedInputTransform'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Normalize'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Round'>: <function botorch_component_to_dict>, <class 'botorch.sampling.normal.SobolQMCNormalSampler'>: <function botorch_component_to_dict>, <class 'gpytorch.constraints.constraints.Interval'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.GammaPrior'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: <function botorch_component_to_dict>, <class 'pathlib.Path'>: <function pathlib_to_dict>, <class 'pathlib.PosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PurePath'>: <function pathlib_to_dict>, <class 'pathlib.PurePosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PureWindowsPath'>: <function pathlib_to_dict>, <class 'pathlib.WindowsPath'>: <function pathlib_to_dict>}, decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}) tuple[dict[type[Runner], int], dict[type, Callable[[Any], dict[str, Any]]], dict[str, type[T] | Callable[[...], T]]][source]

Add custom runner classes to the SQA and JSON registries. For the SQA registry, if no int is specified, use a hash of the class name.

class ax.storage.registry_bundle.RegistryBundle(metric_clss: dict[type[~ax.core.metric.Metric], int | None], runner_clss: dict[type[~ax.core.runner.Runner], int | None], json_encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = {<class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>: <function metric_to_dict>, <class 'ax.core.arm.Arm'>: <function arm_to_dict>, <class 'ax.core.auxiliary.AuxiliaryExperiment'>: <function auxiliary_experiment_to_dict>, <class 'ax.core.batch_trial.BatchTrial'>: <function batch_to_dict>, <class 'ax.core.data.Data'>: <function data_to_dict>, <class 'ax.core.experiment.Experiment'>: <function experiment_to_dict>, <class 'ax.core.generator_run.GeneratorRun'>: <function generator_run_to_dict>, <class 'ax.core.map_data.MapData'>: <function map_data_to_dict>, <class 'ax.core.map_data.MapKeyInfo'>: <function map_key_info_to_dict>, <class 'ax.core.map_metric.MapMetric'>: <function metric_to_dict>, <class 'ax.core.metric.Metric'>: <function metric_to_dict>, <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>: <function multi_type_experiment_to_dict>, <class 'ax.core.objective.MultiObjective'>: <function multi_objective_to_dict>, <class 'ax.core.objective.Objective'>: <function objective_to_dict>, <class 'ax.core.objective.ScalarizedObjective'>: <function scalarized_objective_to_dict>, <class 'ax.core.observation.ObservationFeatures'>: <function observation_features_to_dict>, <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>: <function multi_objective_optimization_config_to_dict>, <class 'ax.core.optimization_config.OptimizationConfig'>: <function optimization_config_to_dict>, <class 'ax.core.outcome_constraint.ObjectiveThreshold'>: <function outcome_constraint_to_dict>, <class 'ax.core.outcome_constraint.OutcomeConstraint'>: <function outcome_constraint_to_dict>, <class 'ax.core.parameter.ChoiceParameter'>: <function choice_parameter_to_dict>, <class 'ax.core.parameter.FixedParameter'>: <function fixed_parameter_to_dict>, <class 'ax.core.parameter.RangeParameter'>: <function range_parameter_to_dict>, <class 'ax.core.parameter_constraint.OrderConstraint'>: <function order_parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.ParameterConstraint'>: <function parameter_constraint_to_dict>, <class 'ax.core.parameter_constraint.SumConstraint'>: <function sum_parameter_constraint_to_dict>, <class 'ax.core.parameter_distribution.ParameterDistribution'>: <function parameter_distribution_to_dict>, <class 'ax.core.risk_measures.RiskMeasure'>: <function risk_measure_to_dict>, <class 'ax.core.search_space.HierarchicalSearchSpace'>: <function search_space_to_dict>, <class 'ax.core.search_space.RobustSearchSpace'>: <function robust_search_space_to_dict>, <class 'ax.core.search_space.SearchSpace'>: <function search_space_to_dict>, <class 'ax.core.trial.Trial'>: <function trial_to_dict>, <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>: <function logical_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>: <function percentile_early_stopping_strategy_to_dict>, <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>: <function threshold_early_stopping_strategy_to_dict>, <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>: <function improvement_global_stopping_strategy_to_dict>, <class 'ax.metrics.branin.BraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin.NegativeBraninMetric'>: <function metric_to_dict>, <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>: <function metric_to_dict>, <class 'ax.metrics.chemistry.ChemistryMetric'>: <function metric_to_dict>, <class 'ax.metrics.factorial.FactorialMetric'>: <function metric_to_dict>, <class 'ax.metrics.hartmann6.Hartmann6Metric'>: <function metric_to_dict>, <class 'ax.metrics.l2norm.L2NormMetric'>: <function metric_to_dict>, <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>: <function metric_to_dict>, <class 'ax.metrics.sklearn.SklearnMetric'>: <function metric_to_dict>, <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>: <function best_model_selector_to_dict>, <class 'ax.modelbridge.generation_node.GenerationNode'>: <function generation_node_to_dict>, <class 'ax.modelbridge.generation_node.GenerationStep'>: <function generation_step_to_dict>, <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>: <function generation_strategy_to_dict>, <class 'ax.modelbridge.model_spec.ModelSpec'>: <function model_spec_to_dict>, <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MaxTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinTrials'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>: <function transition_criterion_to_dict>, <class 'ax.modelbridge.transition_criterion.TransitionCriterion'>: <function transition_criterion_to_dict>, <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>: <function botorch_model_to_dict>, <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>: <function surrogate_to_dict>, <class 'ax.models.winsorization_config.WinsorizationConfig'>: <function winsorization_config_to_dict>, <class 'ax.runners.synthetic.SyntheticRunner'>: <function runner_to_dict>, <class 'botorch.models.transforms.input.ChainedInputTransform'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Normalize'>: <function botorch_component_to_dict>, <class 'botorch.models.transforms.input.Round'>: <function botorch_component_to_dict>, <class 'botorch.sampling.normal.SobolQMCNormalSampler'>: <function botorch_component_to_dict>, <class 'gpytorch.constraints.constraints.Interval'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.GammaPrior'>: <function botorch_component_to_dict>, <class 'gpytorch.priors.torch_priors.LogNormalPrior'>: <function botorch_component_to_dict>, <class 'pathlib.Path'>: <function pathlib_to_dict>, <class 'pathlib.PosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PurePath'>: <function pathlib_to_dict>, <class 'pathlib.PurePosixPath'>: <function pathlib_to_dict>, <class 'pathlib.PureWindowsPath'>: <function pathlib_to_dict>, <class 'pathlib.WindowsPath'>: <function pathlib_to_dict>}, json_class_encoder_registry: dict[type, ~collections.abc.Callable[[~typing.Any], dict[str, ~typing.Any]]] = {<class 'ax.modelbridge.transforms.base.Transform'>: <function transform_type_to_dict>, <class 'ax.models.torch.botorch_modular.acquisition.Acquisition'>: <function botorch_modular_to_dict>, <class 'botorch.acquisition.acquisition.AcquisitionFunction'>: <function botorch_modular_to_dict>, <class 'botorch.models.model.Model'>: <function botorch_modular_to_dict>, <class 'botorch.utils.types.DEFAULT'>: <function default_to_dict>, <class 'gpytorch.likelihoods.likelihood.Likelihood'>: <function botorch_modular_to_dict>, <class 'gpytorch.mlls.marginal_log_likelihood.MarginalLogLikelihood'>: <function botorch_modular_to_dict>, <class 'torch.nn.modules.module.Module'>: <function botorch_modular_to_dict>}, json_decoder_registry: dict[str, type[~ax.utils.common.serialization.T] | ~collections.abc.Callable[[...], ~ax.utils.common.serialization.T]] = {'AbandonedArm': <class 'ax.core.batch_trial.AbandonedArm'>, 'AggregatedBenchmarkResult': <class 'ax.benchmark.benchmark_result.AggregatedBenchmarkResult'>, 'AndEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.AndEarlyStoppingStrategy'>, 'Arm': <class 'ax.core.arm.Arm'>, 'AutoTransitionAfterGen': <class 'ax.modelbridge.transition_criterion.AutoTransitionAfterGen'>, 'AuxiliaryExperiment': <class 'ax.core.auxiliary.AuxiliaryExperiment'>, 'AuxiliaryExperimentCheck': <class 'ax.modelbridge.transition_criterion.AuxiliaryExperimentCheck'>, 'AuxiliaryExperimentPurpose': <enum 'AuxiliaryExperimentPurpose'>, 'BatchTrial': <class 'ax.core.batch_trial.BatchTrial'>, 'BenchmarkMethod': <class 'ax.benchmark.benchmark_method.BenchmarkMethod'>, 'BenchmarkMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'BenchmarkResult': <class 'ax.benchmark.benchmark_result.BenchmarkResult'>, 'BoTorchModel': <class 'ax.models.torch.botorch_modular.model.BoTorchModel'>, 'BraninMetric': <class 'ax.metrics.branin.BraninMetric'>, 'BraninTimestampMapMetric': <class 'ax.metrics.branin_map.BraninTimestampMapMetric'>, 'ChainedInputTransform': <class 'botorch.models.transforms.input.ChainedInputTransform'>, 'ChemistryMetric': <class 'ax.metrics.chemistry.ChemistryMetric'>, 'ChemistryProblemType': <enum 'ChemistryProblemType'>, 'ChoiceParameter': <class 'ax.core.parameter.ChoiceParameter'>, 'ComparisonOp': <enum 'ComparisonOp'>, 'Data': <class 'ax.core.data.Data'>, 'DataType': <enum 'DataType'>, 'DomainType': <enum 'DomainType'>, 'Experiment': <class 'ax.core.experiment.Experiment'>, 'FactorialMetric': <class 'ax.metrics.factorial.FactorialMetric'>, 'FixedParameter': <class 'ax.core.parameter.FixedParameter'>, 'GammaPrior': <class 'gpytorch.priors.torch_priors.GammaPrior'>, 'GenerationNode': <class 'ax.modelbridge.generation_node.GenerationNode'>, 'GenerationStep': <class 'ax.modelbridge.generation_node.GenerationStep'>, 'GenerationStrategy': <class 'ax.modelbridge.generation_strategy.GenerationStrategy'>, 'GeneratorRun': <class 'ax.core.generator_run.GeneratorRun'>, 'GeneratorRunStruct': <class 'ax.core.batch_trial.GeneratorRunStruct'>, 'Hartmann6Metric': <class 'ax.metrics.hartmann6.Hartmann6Metric'>, 'HierarchicalSearchSpace': <class 'ax.core.search_space.HierarchicalSearchSpace'>, 'ImprovementGlobalStoppingStrategy': <class 'ax.global_stopping.strategies.improvement.ImprovementGlobalStoppingStrategy'>, 'InputConstructorPurpose': <enum 'InputConstructorPurpose'>, 'Interval': <class 'gpytorch.constraints.constraints.Interval'>, 'IsSingleObjective': <class 'ax.modelbridge.transition_criterion.IsSingleObjective'>, 'Keys': <enum 'Keys'>, 'L2NormMetric': <class 'ax.metrics.l2norm.L2NormMetric'>, 'LifecycleStage': <enum 'LifecycleStage'>, 'ListSurrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'LogNormalPrior': <class 'gpytorch.priors.torch_priors.LogNormalPrior'>, 'MapData': <class 'ax.core.map_data.MapData'>, 'MapKeyInfo': <class 'ax.core.map_data.MapKeyInfo'>, 'MapMetric': <class 'ax.core.map_metric.MapMetric'>, 'MaxGenerationParallelism': <class 'ax.modelbridge.transition_criterion.MaxGenerationParallelism'>, 'MaxTrials': <class 'ax.modelbridge.transition_criterion.MaxTrials'>, 'Metric': <class 'ax.core.metric.Metric'>, 'MinTrials': <class 'ax.modelbridge.transition_criterion.MinTrials'>, 'MinimumPreferenceOccurances': <class 'ax.modelbridge.transition_criterion.MinimumPreferenceOccurances'>, 'MinimumTrialsInStatus': <class 'ax.modelbridge.transition_criterion.MinimumTrialsInStatus'>, 'ModelConfig': <class 'ax.models.torch.botorch_modular.utils.ModelConfig'>, 'ModelRegistryBase': <enum 'ModelRegistryBase'>, 'ModelSpec': <class 'ax.modelbridge.model_spec.ModelSpec'>, 'Models': <enum 'Models'>, 'MultiObjective': <class 'ax.core.objective.MultiObjective'>, 'MultiObjectiveOptimizationConfig': <class 'ax.core.optimization_config.MultiObjectiveOptimizationConfig'>, 'MultiTypeExperiment': <class 'ax.core.multi_type_experiment.MultiTypeExperiment'>, 'NegativeBraninMetric': <class 'ax.metrics.branin.NegativeBraninMetric'>, 'NodeInputConstructors': <enum 'NodeInputConstructors'>, 'NoisyFunctionMetric': <class 'ax.metrics.noisy_function.NoisyFunctionMetric'>, 'Normalize': <class 'botorch.models.transforms.input.Normalize'>, 'Objective': <class 'ax.core.objective.Objective'>, 'ObjectiveThreshold': <class 'ax.core.outcome_constraint.ObjectiveThreshold'>, 'ObservationFeatures': <class 'ax.core.observation.ObservationFeatures'>, 'OptimizationConfig': <class 'ax.core.optimization_config.OptimizationConfig'>, 'OrEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.logical.OrEarlyStoppingStrategy'>, 'OrderConstraint': <class 'ax.core.parameter_constraint.OrderConstraint'>, 'OutcomeConstraint': <class 'ax.core.outcome_constraint.OutcomeConstraint'>, 'ParameterConstraint': <class 'ax.core.parameter_constraint.ParameterConstraint'>, 'ParameterConstraintType': <enum 'ParameterConstraintType'>, 'ParameterDistribution': <class 'ax.core.parameter_distribution.ParameterDistribution'>, 'ParameterType': <enum 'ParameterType'>, 'Path': <function pathlib_from_json>, 'PercentileEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.percentile.PercentileEarlyStoppingStrategy'>, 'PosixPath': <function pathlib_from_json>, 'PurePath': <function pathlib_from_json>, 'PurePosixPath': <function pathlib_from_json>, 'PureWindowsPath': <function pathlib_from_json>, 'RangeParameter': <class 'ax.core.parameter.RangeParameter'>, 'ReductionCriterion': <enum 'ReductionCriterion'>, 'RiskMeasure': <class 'ax.core.risk_measures.RiskMeasure'>, 'RobustSearchSpace': <class 'ax.core.search_space.RobustSearchSpace'>, 'Round': <class 'botorch.models.transforms.input.Round'>, 'ScalarizedObjective': <class 'ax.core.objective.ScalarizedObjective'>, 'SchedulerOptions': <class 'ax.service.utils.scheduler_options.SchedulerOptions'>, 'SearchSpace': <class 'ax.core.search_space.SearchSpace'>, 'SingleDiagnosticBestModelSelector': <class 'ax.modelbridge.best_model_selector.SingleDiagnosticBestModelSelector'>, 'SklearnDataset': <enum 'SklearnDataset'>, 'SklearnMetric': <class 'ax.metrics.sklearn.SklearnMetric'>, 'SklearnModelType': <enum 'SklearnModelType'>, 'SobolQMCNormalSampler': <class 'botorch.sampling.normal.SobolQMCNormalSampler'>, 'SumConstraint': <class 'ax.core.parameter_constraint.SumConstraint'>, 'Surrogate': <class 'ax.models.torch.botorch_modular.surrogate.Surrogate'>, 'SurrogateMetric': <class 'ax.benchmark.benchmark_metric.BenchmarkMetric'>, 'SurrogateSpec': <class 'ax.models.torch.botorch_modular.surrogate.SurrogateSpec'>, 'SyntheticRunner': <class 'ax.runners.synthetic.SyntheticRunner'>, 'ThresholdEarlyStoppingStrategy': <class 'ax.early_stopping.strategies.threshold.ThresholdEarlyStoppingStrategy'>, 'Trial': <class 'ax.core.trial.Trial'>, 'TrialStatus': <enum 'TrialStatus'>, 'TrialType': <enum 'TrialType'>, 'WindowsPath': <function pathlib_from_json>, 'WinsorizationConfig': <class 'ax.models.winsorization_config.WinsorizationConfig'>}, json_class_decoder_registry: dict[str, ~collections.abc.Callable[[dict[str, ~typing.Any]], ~typing.Any]] = {'Type[AcquisitionFunction]': <function class_from_json>, 'Type[Acquisition]': <function class_from_json>, 'Type[InputTransform]': <function input_transform_type_from_json>, 'Type[Kernel]': <function class_from_json>, 'Type[Likelihood]': <function class_from_json>, 'Type[MarginalLogLikelihood]': <function class_from_json>, 'Type[Model]': <function class_from_json>, 'Type[OutcomeTransform]': <function outcome_transform_type_from_json>, 'Type[Transform]': <function transform_type_from_json>, 'Type[torch.nn.Module]': <function class_from_json>, '_DefaultType': <function default_from_json>})[source]

Bases: RegistryBundleBase

A concrete implementation of RegistryBundleBase with sensible defaults.

property decoder: Decoder
property encoder: Encoder
property sqa_config: SQAConfig
class ax.storage.registry_bundle.RegistryBundleBase(metric_clss: dict[type[Metric], int | None], runner_clss: dict[type[Runner], int | None], json_encoder_registry: dict[type, Callable[[Any], dict[str, Any]]], json_class_encoder_registry: dict[type, Callable[[Any], dict[str, Any]]], json_decoder_registry: dict[str, type[T] | Callable[[...], T]], json_class_decoder_registry: dict[str, Callable[[dict[str, Any]], Any]])[source]

Bases: ABC

An abstraction to help with storing experiments with custom Metrics and Runners.

Rather than managing registries individually, the RegistryBundle consumes custom metrics, runners, and configuration information and is lazily creates the storage registries needed for saving and loading.

Parameters:
  • metric_clss – A dictionary from Metric classes to the int their type should be encoded as in the associated SQAMetric. If no None is passed for the int a hash will be generated.

  • runner_clss – A dictionary from Runner classes to the int their type should be encoded as in the associated SQARunner. If no None is passed for the int a hash will be generated.

  • json_encoder_registry – A dictionary from Types to methods from an instance of the type to JSON.

  • json_class_encoder_registry – A dictionary from Types to methods from the type’s class to JSON.

  • json_decoder_registry – A dictionary from str class labels to their associated Type.

  • json_class_decoder_registry – A dictionary from str class labels to an associated method for reconstruction.

property class_decoder_registry: dict[str, Callable[[dict[str, Any]], Any]]
property class_encoder_registry: dict[type, Callable[[Any], dict[str, Any]]]
abstract property decoder: Decoder
property decoder_registry: dict[str, type[T] | Callable[[...], T]]
abstract property encoder: Encoder
property encoder_registry: dict[type, Callable[[Any], dict[str, Any]]]
classmethod from_registry_bundles(*registry_bundles: RegistryBundleBase) RegistryBundleBase[source]
property metric_registry: dict[type[Metric], int]
property runner_registry: dict[type[Runner], int]
abstract property sqa_config: SQAConfig
ax.storage.transform_registry.TRANSFORM_REGISTRY: dict[type[Transform], int] = {<class 'ax.modelbridge.transforms.base.Transform'>: 8, <class 'ax.modelbridge.transforms.choice_encode.ChoiceEncode'>: 19, <class 'ax.modelbridge.transforms.choice_encode.ChoiceToNumericChoice'>: 19, <class 'ax.modelbridge.transforms.choice_encode.OrderedChoiceEncode'>: 7, <class 'ax.modelbridge.transforms.choice_encode.OrderedChoiceToIntegerRange'>: 7, <class 'ax.modelbridge.transforms.convert_metric_names.ConvertMetricNames'>: 0, <class 'ax.modelbridge.transforms.derelativize.Derelativize'>: 1, <class 'ax.modelbridge.transforms.int_range_to_choice.IntRangeToChoice'>: 2, <class 'ax.modelbridge.transforms.int_to_float.IntToFloat'>: 3, <class 'ax.modelbridge.transforms.ivw.IVW'>: 4, <class 'ax.modelbridge.transforms.log.Log'>: 5, <class 'ax.modelbridge.transforms.log_y.LogY'>: 23, <class 'ax.modelbridge.transforms.logit.Logit'>: 20, <class 'ax.modelbridge.transforms.map_unit_x.MapUnitX'>: 21, <class 'ax.modelbridge.transforms.merge_repeated_measurements.MergeRepeatedMeasurements'>: 26, <class 'ax.modelbridge.transforms.metrics_as_task.MetricsAsTask'>: 22, <class 'ax.modelbridge.transforms.one_hot.OneHot'>: 6, <class 'ax.modelbridge.transforms.power_transform_y.PowerTransformY'>: 18, <class 'ax.modelbridge.transforms.relativize.Relativize'>: 24, <class 'ax.modelbridge.transforms.relativize.RelativizeWithConstantControl'>: 25, <class 'ax.modelbridge.transforms.remove_fixed.RemoveFixed'>: 9, <class 'ax.modelbridge.transforms.search_space_to_choice.SearchSpaceToChoice'>: 10, <class 'ax.modelbridge.transforms.standardize_y.StandardizeY'>: 11, <class 'ax.modelbridge.transforms.stratified_standardize_y.StratifiedStandardizeY'>: 12, <class 'ax.modelbridge.transforms.task_encode.TaskChoiceToIntTaskChoice'>: 13, <class 'ax.modelbridge.transforms.task_encode.TaskEncode'>: 13, <class 'ax.modelbridge.transforms.time_as_feature.TimeAsFeature'>: 27, <class 'ax.modelbridge.transforms.transform_to_new_sq.TransformToNewSQ'>: 28, <class 'ax.modelbridge.transforms.trial_as_task.TrialAsTask'>: 14, <class 'ax.modelbridge.transforms.unit_x.UnitX'>: 15, <class 'ax.modelbridge.transforms.winsorize.Winsorize'>: 16}

List transforms which are be deprecated. These will be present in TRANSFORM_REGISTRY so that old call sites can still store properly, but when loading back the new class will be used.

Utilities

class ax.storage.utils.DomainType(value)[source]

Bases: Enum

Class for enumerating domain types.

CHOICE: int = 2
ENVIRONMENTAL_RANGE: int = 3
FIXED: int = 0
RANGE: int = 1
class ax.storage.utils.MetricIntent(value)[source]

Bases: Enum

Class for enumerating metric use types.

ADDITIONAL_OBJECTIVE: str = 'additional_objective'
MULTI_OBJECTIVE: str = 'multi_objective'
OBJECTIVE: str = 'objective'
OBJECTIVE_THRESHOLD: str = 'objective_threshold'
OUTCOME_CONSTRAINT: str = 'outcome_constraint'
RISK_MEASURE: str = 'risk_measure'
SCALARIZED_OBJECTIVE: str = 'scalarized_objective'
SCALARIZED_OUTCOME_CONSTRAINT: str = 'scalarized_outcome_constraint'
TRACKING: str = 'tracking'
class ax.storage.utils.ParameterConstraintType(value)[source]

Bases: Enum

Class for enumerating parameter constraint types.

Linear constraint is base type whereas other constraint types are special types of linear constraints.

DISTRIBUTION: int = 3
LINEAR: int = 0
ORDER: int = 1
SUM: int = 2
ax.storage.utils.stable_hash(s: str) int[source]

Return an integer hash of a string that is consistent across re-invocations of the interpreter (unlike the built-in hash, which is salted by default).

Parameters:

s (str) – String to hash.

Returns:

Hash, converted to an integer.

Return type:

int