Source code for azure.ai.ml.automl._automl_image

# ---------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# ---------------------------------------------------------

"""Entrypoints for creating AutoML tasks"""

from typing import Union

from azure.ai.ml._restclient.v2022_02_01_preview.models import (
    ClassificationPrimaryMetrics,
    ClassificationMultilabelPrimaryMetrics,
    ObjectDetectionPrimaryMetrics,
    InstanceSegmentationPrimaryMetrics,
)
from azure.ai.ml.entities._inputs_outputs import Input
from azure.ai.ml.entities._job.automl.image.image_classification_job import ImageClassificationJob
from azure.ai.ml.entities._job.automl.image.image_classification_multilabel_job import ImageClassificationMultilabelJob
from azure.ai.ml.entities._job.automl.image.image_object_detection_job import ImageObjectDetectionJob
from azure.ai.ml.entities._job.automl.image.image_instance_segmentation_job import ImageInstanceSegmentationJob
from azure.ai.ml.entities._builders.base_node import pipeline_node_decorator


def _create_image_job(
    job_cls,
    training_data: Input,
    target_column_name: str,
    primary_metric: Union[str, ClassificationPrimaryMetrics] = None,
    validation_data: Input = None,
    validation_data_size: float = None,
    **kwargs,
):
    """Helper function to create objects for AutoML Image jobs."""
    image_job = job_cls(primary_metric=primary_metric, **kwargs)
    image_job.set_data(
        training_data=training_data,
        target_column_name=target_column_name,
        validation_data=validation_data,
        validation_data_size=validation_data_size,
    )

    return image_job


[docs]@pipeline_node_decorator def image_classification( *, training_data: Input, target_column_name: str, primary_metric: Union[str, ClassificationPrimaryMetrics] = None, validation_data: Input = None, validation_data_size: float = None, **kwargs, ) -> ImageClassificationJob: """Creates an object for AutoML Image multi-class Classification job. :param training_data: Training data. :type training_data: Input :param target_column_name: Name of the target column. :type target_column_name: str :param primary_metric: Primary optimization metric for the task. :type primary_metric: Union[str, ClassificationPrimaryMetrics] :param validation_data: Validation data. :type validation_data: Input :param validation_data_size: The fraction of training data to be set aside for validation purpose. :type validation_data_size: float :param kwargs: A dictionary of additional configuration parameters. :type kwargs: dict :return: Image classification job :rtype: ImageClassificationJob """ return _create_image_job( job_cls=ImageClassificationJob, training_data=training_data, target_column_name=target_column_name, primary_metric=primary_metric, validation_data=validation_data, validation_data_size=validation_data_size, **kwargs, )
[docs]@pipeline_node_decorator def image_classification_multilabel( *, training_data: Input, target_column_name: str, primary_metric: Union[str, ClassificationMultilabelPrimaryMetrics] = None, validation_data: Input = None, validation_data_size: float = None, **kwargs, ) -> ImageClassificationMultilabelJob: """Creates an object for AutoML Image multi-label Classification job. :param training_data: Training data. :type training_data: Input :param target_column_name: Name of the target column. :type target_column_name: str :param primary_metric: Primary optimization metric for the task. :type primary_metric: Union[str, ClassificationMultilabelPrimaryMetrics] :param validation_data: Validation data. :type validation_data: Input :param validation_data_size: The fraction of training data to be set aside for validation purpose. :type validation_data_size: float :param kwargs: A dictionary of additional configuration parameters. :type kwargs: dict :return: Image multi-label classification job :rtype: ImageClassificationMultilabelJob """ return _create_image_job( job_cls=ImageClassificationMultilabelJob, training_data=training_data, target_column_name=target_column_name, primary_metric=primary_metric, validation_data=validation_data, validation_data_size=validation_data_size, **kwargs, )
[docs]@pipeline_node_decorator def image_object_detection( *, training_data: Input, target_column_name: str, primary_metric: Union[str, ObjectDetectionPrimaryMetrics] = None, validation_data: Input = None, validation_data_size: float = None, **kwargs, ) -> ImageObjectDetectionJob: """Creates an object for AutoML Image Object Detection job. :param training_data: Training data. :type training_data: Input :param target_column_name: Name of the target column. :type target_column_name: str :param primary_metric: Primary optimization metric for the task. :type primary_metric: Union[str, ObjectDetectionPrimaryMetrics] :param validation_data: Validation data. :type validation_data: Input :param validation_data_size: The fraction of training data to be set aside for validation purpose. :type validation_data_size: float :param kwargs: A dictionary of additional configuration parameters. :type kwargs: dict :return: Image object detection job :rtype: ImageObjectDetectionJob """ return _create_image_job( job_cls=ImageObjectDetectionJob, training_data=training_data, target_column_name=target_column_name, primary_metric=primary_metric, validation_data=validation_data, validation_data_size=validation_data_size, **kwargs, )
[docs]@pipeline_node_decorator def image_instance_segmentation( *, training_data: Input, target_column_name: str, primary_metric: Union[str, InstanceSegmentationPrimaryMetrics] = None, validation_data: Input = None, validation_data_size: float = None, **kwargs, ) -> ImageInstanceSegmentationJob: """Creates an object for AutoML Image Instance Segmentation job. :param training_data: Training data. :type training_data: Input :param target_column_name: Name of the target column. :type target_column_name: str :param primary_metric: Primary optimization metric for the task. :type primary_metric: Union[str, InstanceSegmentationPrimaryMetrics] :param validation_data: Validation data. :type validation_data: Input :param validation_data_size: The fraction of training data to be set aside for validation purpose. :type validation_data_size: float :param kwargs: A dictionary of additional configuration parameters. :type kwargs: dict :return: Image instance segmentation job :rtype: ImageInstanceSegmentationJob """ return _create_image_job( job_cls=ImageInstanceSegmentationJob, training_data=training_data, target_column_name=target_column_name, primary_metric=primary_metric, validation_data=validation_data, validation_data_size=validation_data_size, **kwargs, )