def test_create_tuning_kmeans_identical_dataset_algorithm_tuner(sagemaker_session, kmeans_train_set, kmeans_estimator, hyperparameter_ranges): """Tests Identical dataset and algorithm use case with one parent and child job launched with .create_identical_dataset_and_algorithm_tuner() """ parent_tuning_job_name = name_from_base("km-iden2-parent", max_length=32, short=True) child_tuning_job_name = name_from_base("km-iden2-child", max_length=32, short=True) parent_tuner = _tune(kmeans_estimator, kmeans_train_set, job_name=parent_tuning_job_name, hyperparameter_ranges=hyperparameter_ranges, max_parallel_jobs=1, max_jobs=1) child_tuner = create_identical_dataset_and_algorithm_tuner(parent=parent_tuner.latest_tuning_job.name, sagemaker_session=sagemaker_session) _tune(kmeans_estimator, kmeans_train_set, job_name=child_tuning_job_name, tuner=child_tuner, max_parallel_jobs=1, max_jobs=1) child_warm_start_config_response = WarmStartConfig.from_job_desc( sagemaker_session.sagemaker_client.describe_hyper_parameter_tuning_job( HyperParameterTuningJobName=child_tuning_job_name)["WarmStartConfig"]) assert child_warm_start_config_response.type == child_tuner.warm_start_config.type assert child_warm_start_config_response.parents == child_tuner.warm_start_config.parents
def test_create_identical_dataset_and_algorithm_tuner(sagemaker_session, additional_parents): job_details = copy.deepcopy(TUNING_JOB_DETAILS) sagemaker_session.sagemaker_client.describe_hyper_parameter_tuning_job = Mock(name='describe_tuning_job', return_value=job_details) tuner = create_identical_dataset_and_algorithm_tuner(parent=JOB_NAME, additional_parents=additional_parents, sagemaker_session=sagemaker_session) assert tuner.warm_start_config.type == WarmStartTypes.IDENTICAL_DATA_AND_ALGORITHM if additional_parents: additional_parents.add(JOB_NAME) assert tuner.warm_start_config.parents == additional_parents else: assert tuner.warm_start_config.parents == {JOB_NAME}