def test_describe_auto_ml_job(sagemaker_session): auto_ml = AutoML(role=ROLE, target_attribute_name=TARGET_ATTRIBUTE_NAME, sagemaker_session=sagemaker_session) auto_ml.describe_auto_ml_job(job_name=JOB_NAME) sagemaker_session.describe_auto_ml_job.assert_called_once() sagemaker_session.describe_auto_ml_job.assert_called_with(JOB_NAME)
def test_auto_ml_describe_auto_ml_job(sagemaker_session): expected_default_input_config = [{ "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://{}/{}/input/iris_training.csv".format( sagemaker_session.default_bucket(), PREFIX), } }, "TargetAttributeName": TARGET_ATTRIBUTE_NAME, }] expected_default_output_config = { "S3OutputPath": "s3://{}/".format(sagemaker_session.default_bucket()) } auto_ml_utils.create_auto_ml_job_if_not_exist(sagemaker_session) auto_ml = AutoML(role=ROLE, target_attribute_name=TARGET_ATTRIBUTE_NAME, sagemaker_session=sagemaker_session) desc = auto_ml.describe_auto_ml_job(job_name=AUTO_ML_JOB_NAME) assert desc["AutoMLJobName"] == AUTO_ML_JOB_NAME assert desc["AutoMLJobStatus"] == "Completed" assert isinstance(desc["BestCandidate"], dict) assert desc["InputDataConfig"] == expected_default_input_config assert desc["AutoMLJobConfig"] == EXPECTED_DEFAULT_JOB_CONFIG assert desc["OutputDataConfig"] == expected_default_output_config
def test_auto_ml_fit_optional_args(sagemaker_session): output_path = "s3://{}/{}".format(sagemaker_session.default_bucket(), "specified_ouput_path") problem_type = "MulticlassClassification" job_objective = {"MetricName": "Accuracy"} auto_ml = AutoML( role=ROLE, target_attribute_name=TARGET_ATTRIBUTE_NAME, sagemaker_session=sagemaker_session, max_candidates=1, output_path=output_path, problem_type=problem_type, job_objective=job_objective, generate_candidate_definitions_only=True, ) inputs = TRAINING_DATA with timeout(minutes=AUTO_ML_DEFAULT_TIMEMOUT_MINUTES): auto_ml.fit(inputs, job_name=unique_name_from_base(BASE_JOB_NAME)) auto_ml_desc = auto_ml.describe_auto_ml_job( job_name=auto_ml.latest_auto_ml_job.job_name) assert auto_ml_desc["AutoMLJobStatus"] == "Completed" assert auto_ml_desc["AutoMLJobName"] == auto_ml.latest_auto_ml_job.job_name assert auto_ml_desc["AutoMLJobObjective"] == job_objective assert auto_ml_desc["ProblemType"] == problem_type assert auto_ml_desc["OutputDataConfig"]["S3OutputPath"] == output_path
def test_auto_ml_describe_auto_ml_job(sagemaker_session): auto_ml = AutoML(role=ROLE, target_attribute_name=TARGET_ATTRIBUTE_NAME, sagemaker_session=sagemaker_session) desc = auto_ml.describe_auto_ml_job(job_name=AUTO_ML_JOB_NAME) assert desc["AutoMLJobName"] == AUTO_ML_JOB_NAME assert desc["AutoMLJobStatus"] == "Completed" assert isinstance(desc["BestCandidate"], dict) assert desc["InputDataConfig"] == EXPECTED_DEFAULT_INPUT_CONFIG assert desc["AutoMLJobConfig"] == EXPECTED_DEFAULT_JOB_CONFIG assert desc["OutputDataConfig"] == EXPECTED_DEFAULT_OUTPUT_CONFIG
def test_auto_ml_fit_optional_args(sagemaker_session): output_path = "s3://sagemaker-us-east-2-{}/{}".format( DEV_ACCOUNT, "specified_ouput_path") problem_type = "MulticlassClassification" job_objective = {"MetricName": "Accuracy"} auto_ml = AutoML( role=ROLE, target_attribute_name=TARGET_ATTRIBUTE_NAME, sagemaker_session=sagemaker_session, max_candidates=1, output_path=output_path, problem_type=problem_type, job_objective=job_objective, ) inputs = TRAINING_DATA with timeout(minutes=AUTO_ML_DEFAULT_TIMEMOUT_MINUTES): auto_ml.fit(inputs, job_name=JOB_NAME) auto_ml_desc = auto_ml.describe_auto_ml_job(job_name=JOB_NAME) assert auto_ml_desc["AutoMLJobStatus"] == "Completed" assert auto_ml_desc["AutoMLJobName"] == JOB_NAME assert auto_ml_desc["AutoMLJobObjective"] == job_objective assert auto_ml_desc["ProblemType"] == problem_type assert auto_ml_desc["OutputDataConfig"]["S3OutputPath"] == output_path