Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azurenative.machinelearningservices.inputs.ImageModelDistributionSettingsObjectDetectionArgs Maven / Gradle / Ivy
Go to download
A native Pulumi package for creating and managing Azure resources.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.azurenative.machinelearningservices.inputs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
/**
* Distribution expressions to sweep over values of model settings.
* <example>
* Some examples are:
*
*/
public final class ImageModelDistributionSettingsObjectDetectionArgs extends com.pulumi.resources.ResourceArgs {
public static final ImageModelDistributionSettingsObjectDetectionArgs Empty = new ImageModelDistributionSettingsObjectDetectionArgs();
/**
* Enable AMSGrad when optimizer is 'adam' or 'adamw'.
*
*/
@Import(name="amsGradient")
private @Nullable Output amsGradient;
/**
* @return Enable AMSGrad when optimizer is 'adam' or 'adamw'.
*
*/
public Optional> amsGradient() {
return Optional.ofNullable(this.amsGradient);
}
/**
* Settings for using Augmentations.
*
*/
@Import(name="augmentations")
private @Nullable Output augmentations;
/**
* @return Settings for using Augmentations.
*
*/
public Optional> augmentations() {
return Optional.ofNullable(this.augmentations);
}
/**
* Value of 'beta1' when optimizer is 'adam' or 'adamw'. Must be a float in the range [0, 1].
*
*/
@Import(name="beta1")
private @Nullable Output beta1;
/**
* @return Value of 'beta1' when optimizer is 'adam' or 'adamw'. Must be a float in the range [0, 1].
*
*/
public Optional> beta1() {
return Optional.ofNullable(this.beta1);
}
/**
* Value of 'beta2' when optimizer is 'adam' or 'adamw'. Must be a float in the range [0, 1].
*
*/
@Import(name="beta2")
private @Nullable Output beta2;
/**
* @return Value of 'beta2' when optimizer is 'adam' or 'adamw'. Must be a float in the range [0, 1].
*
*/
public Optional> beta2() {
return Optional.ofNullable(this.beta2);
}
/**
* Maximum number of detections per image, for all classes. Must be a positive integer.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
*/
@Import(name="boxDetectionsPerImage")
private @Nullable Output boxDetectionsPerImage;
/**
* @return Maximum number of detections per image, for all classes. Must be a positive integer.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
*/
public Optional> boxDetectionsPerImage() {
return Optional.ofNullable(this.boxDetectionsPerImage);
}
/**
* During inference, only return proposals with a classification score greater than
* BoxScoreThreshold. Must be a float in the range[0, 1].
*
*/
@Import(name="boxScoreThreshold")
private @Nullable Output boxScoreThreshold;
/**
* @return During inference, only return proposals with a classification score greater than
* BoxScoreThreshold. Must be a float in the range[0, 1].
*
*/
public Optional> boxScoreThreshold() {
return Optional.ofNullable(this.boxScoreThreshold);
}
/**
* Whether to use distributer training.
*
*/
@Import(name="distributed")
private @Nullable Output distributed;
/**
* @return Whether to use distributer training.
*
*/
public Optional> distributed() {
return Optional.ofNullable(this.distributed);
}
/**
* Enable early stopping logic during training.
*
*/
@Import(name="earlyStopping")
private @Nullable Output earlyStopping;
/**
* @return Enable early stopping logic during training.
*
*/
public Optional> earlyStopping() {
return Optional.ofNullable(this.earlyStopping);
}
/**
* Minimum number of epochs or validation evaluations to wait before primary metric improvement
* is tracked for early stopping. Must be a positive integer.
*
*/
@Import(name="earlyStoppingDelay")
private @Nullable Output earlyStoppingDelay;
/**
* @return Minimum number of epochs or validation evaluations to wait before primary metric improvement
* is tracked for early stopping. Must be a positive integer.
*
*/
public Optional> earlyStoppingDelay() {
return Optional.ofNullable(this.earlyStoppingDelay);
}
/**
* Minimum number of epochs or validation evaluations with no primary metric improvement before
* the run is stopped. Must be a positive integer.
*
*/
@Import(name="earlyStoppingPatience")
private @Nullable Output earlyStoppingPatience;
/**
* @return Minimum number of epochs or validation evaluations with no primary metric improvement before
* the run is stopped. Must be a positive integer.
*
*/
public Optional> earlyStoppingPatience() {
return Optional.ofNullable(this.earlyStoppingPatience);
}
/**
* Enable normalization when exporting ONNX model.
*
*/
@Import(name="enableOnnxNormalization")
private @Nullable Output enableOnnxNormalization;
/**
* @return Enable normalization when exporting ONNX model.
*
*/
public Optional> enableOnnxNormalization() {
return Optional.ofNullable(this.enableOnnxNormalization);
}
/**
* Frequency to evaluate validation dataset to get metric scores. Must be a positive integer.
*
*/
@Import(name="evaluationFrequency")
private @Nullable Output evaluationFrequency;
/**
* @return Frequency to evaluate validation dataset to get metric scores. Must be a positive integer.
*
*/
public Optional> evaluationFrequency() {
return Optional.ofNullable(this.evaluationFrequency);
}
/**
* Gradient accumulation means running a configured number of "GradAccumulationStep" steps without
* updating the model weights while accumulating the gradients of those steps, and then using
* the accumulated gradients to compute the weight updates. Must be a positive integer.
*
*/
@Import(name="gradientAccumulationStep")
private @Nullable Output gradientAccumulationStep;
/**
* @return Gradient accumulation means running a configured number of "GradAccumulationStep" steps without
* updating the model weights while accumulating the gradients of those steps, and then using
* the accumulated gradients to compute the weight updates. Must be a positive integer.
*
*/
public Optional> gradientAccumulationStep() {
return Optional.ofNullable(this.gradientAccumulationStep);
}
/**
* Image size for train and validation. Must be a positive integer.
* Note: The training run may get into CUDA OOM if the size is too big.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
*/
@Import(name="imageSize")
private @Nullable Output imageSize;
/**
* @return Image size for train and validation. Must be a positive integer.
* Note: The training run may get into CUDA OOM if the size is too big.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
*/
public Optional> imageSize() {
return Optional.ofNullable(this.imageSize);
}
/**
* Number of layers to freeze for the model. Must be a positive integer.
* For instance, passing 2 as value for 'seresnext' means
* freezing layer0 and layer1. For a full list of models supported and details on layer freeze, please
* see: https://docs.microsoft.com/en-us/azure/machine-learning/how-to-auto-train-image-models.
*
*/
@Import(name="layersToFreeze")
private @Nullable Output layersToFreeze;
/**
* @return Number of layers to freeze for the model. Must be a positive integer.
* For instance, passing 2 as value for 'seresnext' means
* freezing layer0 and layer1. For a full list of models supported and details on layer freeze, please
* see: https://docs.microsoft.com/en-us/azure/machine-learning/how-to-auto-train-image-models.
*
*/
public Optional> layersToFreeze() {
return Optional.ofNullable(this.layersToFreeze);
}
/**
* Initial learning rate. Must be a float in the range [0, 1].
*
*/
@Import(name="learningRate")
private @Nullable Output learningRate;
/**
* @return Initial learning rate. Must be a float in the range [0, 1].
*
*/
public Optional> learningRate() {
return Optional.ofNullable(this.learningRate);
}
/**
* Type of learning rate scheduler. Must be 'warmup_cosine' or 'step'.
*
*/
@Import(name="learningRateScheduler")
private @Nullable Output learningRateScheduler;
/**
* @return Type of learning rate scheduler. Must be 'warmup_cosine' or 'step'.
*
*/
public Optional> learningRateScheduler() {
return Optional.ofNullable(this.learningRateScheduler);
}
/**
* Maximum size of the image to be rescaled before feeding it to the backbone.
* Must be a positive integer. Note: training run may get into CUDA OOM if the size is too big.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
*/
@Import(name="maxSize")
private @Nullable Output maxSize;
/**
* @return Maximum size of the image to be rescaled before feeding it to the backbone.
* Must be a positive integer. Note: training run may get into CUDA OOM if the size is too big.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
*/
public Optional> maxSize() {
return Optional.ofNullable(this.maxSize);
}
/**
* Minimum size of the image to be rescaled before feeding it to the backbone.
* Must be a positive integer. Note: training run may get into CUDA OOM if the size is too big.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
*/
@Import(name="minSize")
private @Nullable Output minSize;
/**
* @return Minimum size of the image to be rescaled before feeding it to the backbone.
* Must be a positive integer. Note: training run may get into CUDA OOM if the size is too big.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
*/
public Optional> minSize() {
return Optional.ofNullable(this.minSize);
}
/**
* Name of the model to use for training.
* For more information on the available models please visit the official documentation:
* https://docs.microsoft.com/en-us/azure/machine-learning/how-to-auto-train-image-models.
*
*/
@Import(name="modelName")
private @Nullable Output modelName;
/**
* @return Name of the model to use for training.
* For more information on the available models please visit the official documentation:
* https://docs.microsoft.com/en-us/azure/machine-learning/how-to-auto-train-image-models.
*
*/
public Optional> modelName() {
return Optional.ofNullable(this.modelName);
}
/**
* Model size. Must be 'small', 'medium', 'large', or 'xlarge'.
* Note: training run may get into CUDA OOM if the model size is too big.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
*/
@Import(name="modelSize")
private @Nullable Output modelSize;
/**
* @return Model size. Must be 'small', 'medium', 'large', or 'xlarge'.
* Note: training run may get into CUDA OOM if the model size is too big.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
*/
public Optional> modelSize() {
return Optional.ofNullable(this.modelSize);
}
/**
* Value of momentum when optimizer is 'sgd'. Must be a float in the range [0, 1].
*
*/
@Import(name="momentum")
private @Nullable Output momentum;
/**
* @return Value of momentum when optimizer is 'sgd'. Must be a float in the range [0, 1].
*
*/
public Optional> momentum() {
return Optional.ofNullable(this.momentum);
}
/**
* Enable multi-scale image by varying image size by +/- 50%.
* Note: training run may get into CUDA OOM if no sufficient GPU memory.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
*/
@Import(name="multiScale")
private @Nullable Output multiScale;
/**
* @return Enable multi-scale image by varying image size by +/- 50%.
* Note: training run may get into CUDA OOM if no sufficient GPU memory.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
*/
public Optional> multiScale() {
return Optional.ofNullable(this.multiScale);
}
/**
* Enable nesterov when optimizer is 'sgd'.
*
*/
@Import(name="nesterov")
private @Nullable Output nesterov;
/**
* @return Enable nesterov when optimizer is 'sgd'.
*
*/
public Optional> nesterov() {
return Optional.ofNullable(this.nesterov);
}
/**
* IOU threshold used during inference in NMS post processing. Must be float in the range [0, 1].
*
*/
@Import(name="nmsIouThreshold")
private @Nullable Output nmsIouThreshold;
/**
* @return IOU threshold used during inference in NMS post processing. Must be float in the range [0, 1].
*
*/
public Optional> nmsIouThreshold() {
return Optional.ofNullable(this.nmsIouThreshold);
}
/**
* Number of training epochs. Must be a positive integer.
*
*/
@Import(name="numberOfEpochs")
private @Nullable Output numberOfEpochs;
/**
* @return Number of training epochs. Must be a positive integer.
*
*/
public Optional> numberOfEpochs() {
return Optional.ofNullable(this.numberOfEpochs);
}
/**
* Number of data loader workers. Must be a non-negative integer.
*
*/
@Import(name="numberOfWorkers")
private @Nullable Output numberOfWorkers;
/**
* @return Number of data loader workers. Must be a non-negative integer.
*
*/
public Optional> numberOfWorkers() {
return Optional.ofNullable(this.numberOfWorkers);
}
/**
* Type of optimizer. Must be either 'sgd', 'adam', or 'adamw'.
*
*/
@Import(name="optimizer")
private @Nullable Output optimizer;
/**
* @return Type of optimizer. Must be either 'sgd', 'adam', or 'adamw'.
*
*/
public Optional> optimizer() {
return Optional.ofNullable(this.optimizer);
}
/**
* Random seed to be used when using deterministic training.
*
*/
@Import(name="randomSeed")
private @Nullable Output randomSeed;
/**
* @return Random seed to be used when using deterministic training.
*
*/
public Optional> randomSeed() {
return Optional.ofNullable(this.randomSeed);
}
/**
* Value of gamma when learning rate scheduler is 'step'. Must be a float in the range [0, 1].
*
*/
@Import(name="stepLRGamma")
private @Nullable Output stepLRGamma;
/**
* @return Value of gamma when learning rate scheduler is 'step'. Must be a float in the range [0, 1].
*
*/
public Optional> stepLRGamma() {
return Optional.ofNullable(this.stepLRGamma);
}
/**
* Value of step size when learning rate scheduler is 'step'. Must be a positive integer.
*
*/
@Import(name="stepLRStepSize")
private @Nullable Output stepLRStepSize;
/**
* @return Value of step size when learning rate scheduler is 'step'. Must be a positive integer.
*
*/
public Optional> stepLRStepSize() {
return Optional.ofNullable(this.stepLRStepSize);
}
/**
* The grid size to use for tiling each image. Note: TileGridSize must not be
* None to enable small object detection logic. A string containing two integers in mxn format.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
*/
@Import(name="tileGridSize")
private @Nullable Output tileGridSize;
/**
* @return The grid size to use for tiling each image. Note: TileGridSize must not be
* None to enable small object detection logic. A string containing two integers in mxn format.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
*/
public Optional> tileGridSize() {
return Optional.ofNullable(this.tileGridSize);
}
/**
* Overlap ratio between adjacent tiles in each dimension. Must be float in the range [0, 1).
* Note: This settings is not supported for the 'yolov5' algorithm.
*
*/
@Import(name="tileOverlapRatio")
private @Nullable Output tileOverlapRatio;
/**
* @return Overlap ratio between adjacent tiles in each dimension. Must be float in the range [0, 1).
* Note: This settings is not supported for the 'yolov5' algorithm.
*
*/
public Optional> tileOverlapRatio() {
return Optional.ofNullable(this.tileOverlapRatio);
}
/**
* The IOU threshold to use to perform NMS while merging predictions from tiles and image.
* Used in validation/ inference. Must be float in the range [0, 1].
* Note: This settings is not supported for the 'yolov5' algorithm.
* NMS: Non-maximum suppression
*
*/
@Import(name="tilePredictionsNmsThreshold")
private @Nullable Output tilePredictionsNmsThreshold;
/**
* @return The IOU threshold to use to perform NMS while merging predictions from tiles and image.
* Used in validation/ inference. Must be float in the range [0, 1].
* Note: This settings is not supported for the 'yolov5' algorithm.
* NMS: Non-maximum suppression
*
*/
public Optional> tilePredictionsNmsThreshold() {
return Optional.ofNullable(this.tilePredictionsNmsThreshold);
}
/**
* Training batch size. Must be a positive integer.
*
*/
@Import(name="trainingBatchSize")
private @Nullable Output trainingBatchSize;
/**
* @return Training batch size. Must be a positive integer.
*
*/
public Optional> trainingBatchSize() {
return Optional.ofNullable(this.trainingBatchSize);
}
/**
* Validation batch size. Must be a positive integer.
*
*/
@Import(name="validationBatchSize")
private @Nullable Output validationBatchSize;
/**
* @return Validation batch size. Must be a positive integer.
*
*/
public Optional> validationBatchSize() {
return Optional.ofNullable(this.validationBatchSize);
}
/**
* IOU threshold to use when computing validation metric. Must be float in the range [0, 1].
*
*/
@Import(name="validationIouThreshold")
private @Nullable Output validationIouThreshold;
/**
* @return IOU threshold to use when computing validation metric. Must be float in the range [0, 1].
*
*/
public Optional> validationIouThreshold() {
return Optional.ofNullable(this.validationIouThreshold);
}
/**
* Metric computation method to use for validation metrics. Must be 'none', 'coco', 'voc', or 'coco_voc'.
*
*/
@Import(name="validationMetricType")
private @Nullable Output validationMetricType;
/**
* @return Metric computation method to use for validation metrics. Must be 'none', 'coco', 'voc', or 'coco_voc'.
*
*/
public Optional> validationMetricType() {
return Optional.ofNullable(this.validationMetricType);
}
/**
* Value of cosine cycle when learning rate scheduler is 'warmup_cosine'. Must be a float in the range [0, 1].
*
*/
@Import(name="warmupCosineLRCycles")
private @Nullable Output warmupCosineLRCycles;
/**
* @return Value of cosine cycle when learning rate scheduler is 'warmup_cosine'. Must be a float in the range [0, 1].
*
*/
public Optional> warmupCosineLRCycles() {
return Optional.ofNullable(this.warmupCosineLRCycles);
}
/**
* Value of warmup epochs when learning rate scheduler is 'warmup_cosine'. Must be a positive integer.
*
*/
@Import(name="warmupCosineLRWarmupEpochs")
private @Nullable Output warmupCosineLRWarmupEpochs;
/**
* @return Value of warmup epochs when learning rate scheduler is 'warmup_cosine'. Must be a positive integer.
*
*/
public Optional> warmupCosineLRWarmupEpochs() {
return Optional.ofNullable(this.warmupCosineLRWarmupEpochs);
}
/**
* Value of weight decay when optimizer is 'sgd', 'adam', or 'adamw'. Must be a float in the range[0, 1].
*
*/
@Import(name="weightDecay")
private @Nullable Output weightDecay;
/**
* @return Value of weight decay when optimizer is 'sgd', 'adam', or 'adamw'. Must be a float in the range[0, 1].
*
*/
public Optional> weightDecay() {
return Optional.ofNullable(this.weightDecay);
}
private ImageModelDistributionSettingsObjectDetectionArgs() {}
private ImageModelDistributionSettingsObjectDetectionArgs(ImageModelDistributionSettingsObjectDetectionArgs $) {
this.amsGradient = $.amsGradient;
this.augmentations = $.augmentations;
this.beta1 = $.beta1;
this.beta2 = $.beta2;
this.boxDetectionsPerImage = $.boxDetectionsPerImage;
this.boxScoreThreshold = $.boxScoreThreshold;
this.distributed = $.distributed;
this.earlyStopping = $.earlyStopping;
this.earlyStoppingDelay = $.earlyStoppingDelay;
this.earlyStoppingPatience = $.earlyStoppingPatience;
this.enableOnnxNormalization = $.enableOnnxNormalization;
this.evaluationFrequency = $.evaluationFrequency;
this.gradientAccumulationStep = $.gradientAccumulationStep;
this.imageSize = $.imageSize;
this.layersToFreeze = $.layersToFreeze;
this.learningRate = $.learningRate;
this.learningRateScheduler = $.learningRateScheduler;
this.maxSize = $.maxSize;
this.minSize = $.minSize;
this.modelName = $.modelName;
this.modelSize = $.modelSize;
this.momentum = $.momentum;
this.multiScale = $.multiScale;
this.nesterov = $.nesterov;
this.nmsIouThreshold = $.nmsIouThreshold;
this.numberOfEpochs = $.numberOfEpochs;
this.numberOfWorkers = $.numberOfWorkers;
this.optimizer = $.optimizer;
this.randomSeed = $.randomSeed;
this.stepLRGamma = $.stepLRGamma;
this.stepLRStepSize = $.stepLRStepSize;
this.tileGridSize = $.tileGridSize;
this.tileOverlapRatio = $.tileOverlapRatio;
this.tilePredictionsNmsThreshold = $.tilePredictionsNmsThreshold;
this.trainingBatchSize = $.trainingBatchSize;
this.validationBatchSize = $.validationBatchSize;
this.validationIouThreshold = $.validationIouThreshold;
this.validationMetricType = $.validationMetricType;
this.warmupCosineLRCycles = $.warmupCosineLRCycles;
this.warmupCosineLRWarmupEpochs = $.warmupCosineLRWarmupEpochs;
this.weightDecay = $.weightDecay;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(ImageModelDistributionSettingsObjectDetectionArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private ImageModelDistributionSettingsObjectDetectionArgs $;
public Builder() {
$ = new ImageModelDistributionSettingsObjectDetectionArgs();
}
public Builder(ImageModelDistributionSettingsObjectDetectionArgs defaults) {
$ = new ImageModelDistributionSettingsObjectDetectionArgs(Objects.requireNonNull(defaults));
}
/**
* @param amsGradient Enable AMSGrad when optimizer is 'adam' or 'adamw'.
*
* @return builder
*
*/
public Builder amsGradient(@Nullable Output amsGradient) {
$.amsGradient = amsGradient;
return this;
}
/**
* @param amsGradient Enable AMSGrad when optimizer is 'adam' or 'adamw'.
*
* @return builder
*
*/
public Builder amsGradient(String amsGradient) {
return amsGradient(Output.of(amsGradient));
}
/**
* @param augmentations Settings for using Augmentations.
*
* @return builder
*
*/
public Builder augmentations(@Nullable Output augmentations) {
$.augmentations = augmentations;
return this;
}
/**
* @param augmentations Settings for using Augmentations.
*
* @return builder
*
*/
public Builder augmentations(String augmentations) {
return augmentations(Output.of(augmentations));
}
/**
* @param beta1 Value of 'beta1' when optimizer is 'adam' or 'adamw'. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder beta1(@Nullable Output beta1) {
$.beta1 = beta1;
return this;
}
/**
* @param beta1 Value of 'beta1' when optimizer is 'adam' or 'adamw'. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder beta1(String beta1) {
return beta1(Output.of(beta1));
}
/**
* @param beta2 Value of 'beta2' when optimizer is 'adam' or 'adamw'. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder beta2(@Nullable Output beta2) {
$.beta2 = beta2;
return this;
}
/**
* @param beta2 Value of 'beta2' when optimizer is 'adam' or 'adamw'. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder beta2(String beta2) {
return beta2(Output.of(beta2));
}
/**
* @param boxDetectionsPerImage Maximum number of detections per image, for all classes. Must be a positive integer.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder boxDetectionsPerImage(@Nullable Output boxDetectionsPerImage) {
$.boxDetectionsPerImage = boxDetectionsPerImage;
return this;
}
/**
* @param boxDetectionsPerImage Maximum number of detections per image, for all classes. Must be a positive integer.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder boxDetectionsPerImage(String boxDetectionsPerImage) {
return boxDetectionsPerImage(Output.of(boxDetectionsPerImage));
}
/**
* @param boxScoreThreshold During inference, only return proposals with a classification score greater than
* BoxScoreThreshold. Must be a float in the range[0, 1].
*
* @return builder
*
*/
public Builder boxScoreThreshold(@Nullable Output boxScoreThreshold) {
$.boxScoreThreshold = boxScoreThreshold;
return this;
}
/**
* @param boxScoreThreshold During inference, only return proposals with a classification score greater than
* BoxScoreThreshold. Must be a float in the range[0, 1].
*
* @return builder
*
*/
public Builder boxScoreThreshold(String boxScoreThreshold) {
return boxScoreThreshold(Output.of(boxScoreThreshold));
}
/**
* @param distributed Whether to use distributer training.
*
* @return builder
*
*/
public Builder distributed(@Nullable Output distributed) {
$.distributed = distributed;
return this;
}
/**
* @param distributed Whether to use distributer training.
*
* @return builder
*
*/
public Builder distributed(String distributed) {
return distributed(Output.of(distributed));
}
/**
* @param earlyStopping Enable early stopping logic during training.
*
* @return builder
*
*/
public Builder earlyStopping(@Nullable Output earlyStopping) {
$.earlyStopping = earlyStopping;
return this;
}
/**
* @param earlyStopping Enable early stopping logic during training.
*
* @return builder
*
*/
public Builder earlyStopping(String earlyStopping) {
return earlyStopping(Output.of(earlyStopping));
}
/**
* @param earlyStoppingDelay Minimum number of epochs or validation evaluations to wait before primary metric improvement
* is tracked for early stopping. Must be a positive integer.
*
* @return builder
*
*/
public Builder earlyStoppingDelay(@Nullable Output earlyStoppingDelay) {
$.earlyStoppingDelay = earlyStoppingDelay;
return this;
}
/**
* @param earlyStoppingDelay Minimum number of epochs or validation evaluations to wait before primary metric improvement
* is tracked for early stopping. Must be a positive integer.
*
* @return builder
*
*/
public Builder earlyStoppingDelay(String earlyStoppingDelay) {
return earlyStoppingDelay(Output.of(earlyStoppingDelay));
}
/**
* @param earlyStoppingPatience Minimum number of epochs or validation evaluations with no primary metric improvement before
* the run is stopped. Must be a positive integer.
*
* @return builder
*
*/
public Builder earlyStoppingPatience(@Nullable Output earlyStoppingPatience) {
$.earlyStoppingPatience = earlyStoppingPatience;
return this;
}
/**
* @param earlyStoppingPatience Minimum number of epochs or validation evaluations with no primary metric improvement before
* the run is stopped. Must be a positive integer.
*
* @return builder
*
*/
public Builder earlyStoppingPatience(String earlyStoppingPatience) {
return earlyStoppingPatience(Output.of(earlyStoppingPatience));
}
/**
* @param enableOnnxNormalization Enable normalization when exporting ONNX model.
*
* @return builder
*
*/
public Builder enableOnnxNormalization(@Nullable Output enableOnnxNormalization) {
$.enableOnnxNormalization = enableOnnxNormalization;
return this;
}
/**
* @param enableOnnxNormalization Enable normalization when exporting ONNX model.
*
* @return builder
*
*/
public Builder enableOnnxNormalization(String enableOnnxNormalization) {
return enableOnnxNormalization(Output.of(enableOnnxNormalization));
}
/**
* @param evaluationFrequency Frequency to evaluate validation dataset to get metric scores. Must be a positive integer.
*
* @return builder
*
*/
public Builder evaluationFrequency(@Nullable Output evaluationFrequency) {
$.evaluationFrequency = evaluationFrequency;
return this;
}
/**
* @param evaluationFrequency Frequency to evaluate validation dataset to get metric scores. Must be a positive integer.
*
* @return builder
*
*/
public Builder evaluationFrequency(String evaluationFrequency) {
return evaluationFrequency(Output.of(evaluationFrequency));
}
/**
* @param gradientAccumulationStep Gradient accumulation means running a configured number of "GradAccumulationStep" steps without
* updating the model weights while accumulating the gradients of those steps, and then using
* the accumulated gradients to compute the weight updates. Must be a positive integer.
*
* @return builder
*
*/
public Builder gradientAccumulationStep(@Nullable Output gradientAccumulationStep) {
$.gradientAccumulationStep = gradientAccumulationStep;
return this;
}
/**
* @param gradientAccumulationStep Gradient accumulation means running a configured number of "GradAccumulationStep" steps without
* updating the model weights while accumulating the gradients of those steps, and then using
* the accumulated gradients to compute the weight updates. Must be a positive integer.
*
* @return builder
*
*/
public Builder gradientAccumulationStep(String gradientAccumulationStep) {
return gradientAccumulationStep(Output.of(gradientAccumulationStep));
}
/**
* @param imageSize Image size for train and validation. Must be a positive integer.
* Note: The training run may get into CUDA OOM if the size is too big.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder imageSize(@Nullable Output imageSize) {
$.imageSize = imageSize;
return this;
}
/**
* @param imageSize Image size for train and validation. Must be a positive integer.
* Note: The training run may get into CUDA OOM if the size is too big.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder imageSize(String imageSize) {
return imageSize(Output.of(imageSize));
}
/**
* @param layersToFreeze Number of layers to freeze for the model. Must be a positive integer.
* For instance, passing 2 as value for 'seresnext' means
* freezing layer0 and layer1. For a full list of models supported and details on layer freeze, please
* see: https://docs.microsoft.com/en-us/azure/machine-learning/how-to-auto-train-image-models.
*
* @return builder
*
*/
public Builder layersToFreeze(@Nullable Output layersToFreeze) {
$.layersToFreeze = layersToFreeze;
return this;
}
/**
* @param layersToFreeze Number of layers to freeze for the model. Must be a positive integer.
* For instance, passing 2 as value for 'seresnext' means
* freezing layer0 and layer1. For a full list of models supported and details on layer freeze, please
* see: https://docs.microsoft.com/en-us/azure/machine-learning/how-to-auto-train-image-models.
*
* @return builder
*
*/
public Builder layersToFreeze(String layersToFreeze) {
return layersToFreeze(Output.of(layersToFreeze));
}
/**
* @param learningRate Initial learning rate. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder learningRate(@Nullable Output learningRate) {
$.learningRate = learningRate;
return this;
}
/**
* @param learningRate Initial learning rate. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder learningRate(String learningRate) {
return learningRate(Output.of(learningRate));
}
/**
* @param learningRateScheduler Type of learning rate scheduler. Must be 'warmup_cosine' or 'step'.
*
* @return builder
*
*/
public Builder learningRateScheduler(@Nullable Output learningRateScheduler) {
$.learningRateScheduler = learningRateScheduler;
return this;
}
/**
* @param learningRateScheduler Type of learning rate scheduler. Must be 'warmup_cosine' or 'step'.
*
* @return builder
*
*/
public Builder learningRateScheduler(String learningRateScheduler) {
return learningRateScheduler(Output.of(learningRateScheduler));
}
/**
* @param maxSize Maximum size of the image to be rescaled before feeding it to the backbone.
* Must be a positive integer. Note: training run may get into CUDA OOM if the size is too big.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder maxSize(@Nullable Output maxSize) {
$.maxSize = maxSize;
return this;
}
/**
* @param maxSize Maximum size of the image to be rescaled before feeding it to the backbone.
* Must be a positive integer. Note: training run may get into CUDA OOM if the size is too big.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder maxSize(String maxSize) {
return maxSize(Output.of(maxSize));
}
/**
* @param minSize Minimum size of the image to be rescaled before feeding it to the backbone.
* Must be a positive integer. Note: training run may get into CUDA OOM if the size is too big.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder minSize(@Nullable Output minSize) {
$.minSize = minSize;
return this;
}
/**
* @param minSize Minimum size of the image to be rescaled before feeding it to the backbone.
* Must be a positive integer. Note: training run may get into CUDA OOM if the size is too big.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder minSize(String minSize) {
return minSize(Output.of(minSize));
}
/**
* @param modelName Name of the model to use for training.
* For more information on the available models please visit the official documentation:
* https://docs.microsoft.com/en-us/azure/machine-learning/how-to-auto-train-image-models.
*
* @return builder
*
*/
public Builder modelName(@Nullable Output modelName) {
$.modelName = modelName;
return this;
}
/**
* @param modelName Name of the model to use for training.
* For more information on the available models please visit the official documentation:
* https://docs.microsoft.com/en-us/azure/machine-learning/how-to-auto-train-image-models.
*
* @return builder
*
*/
public Builder modelName(String modelName) {
return modelName(Output.of(modelName));
}
/**
* @param modelSize Model size. Must be 'small', 'medium', 'large', or 'xlarge'.
* Note: training run may get into CUDA OOM if the model size is too big.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder modelSize(@Nullable Output modelSize) {
$.modelSize = modelSize;
return this;
}
/**
* @param modelSize Model size. Must be 'small', 'medium', 'large', or 'xlarge'.
* Note: training run may get into CUDA OOM if the model size is too big.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder modelSize(String modelSize) {
return modelSize(Output.of(modelSize));
}
/**
* @param momentum Value of momentum when optimizer is 'sgd'. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder momentum(@Nullable Output momentum) {
$.momentum = momentum;
return this;
}
/**
* @param momentum Value of momentum when optimizer is 'sgd'. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder momentum(String momentum) {
return momentum(Output.of(momentum));
}
/**
* @param multiScale Enable multi-scale image by varying image size by +/- 50%.
* Note: training run may get into CUDA OOM if no sufficient GPU memory.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder multiScale(@Nullable Output multiScale) {
$.multiScale = multiScale;
return this;
}
/**
* @param multiScale Enable multi-scale image by varying image size by +/- 50%.
* Note: training run may get into CUDA OOM if no sufficient GPU memory.
* Note: This settings is only supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder multiScale(String multiScale) {
return multiScale(Output.of(multiScale));
}
/**
* @param nesterov Enable nesterov when optimizer is 'sgd'.
*
* @return builder
*
*/
public Builder nesterov(@Nullable Output nesterov) {
$.nesterov = nesterov;
return this;
}
/**
* @param nesterov Enable nesterov when optimizer is 'sgd'.
*
* @return builder
*
*/
public Builder nesterov(String nesterov) {
return nesterov(Output.of(nesterov));
}
/**
* @param nmsIouThreshold IOU threshold used during inference in NMS post processing. Must be float in the range [0, 1].
*
* @return builder
*
*/
public Builder nmsIouThreshold(@Nullable Output nmsIouThreshold) {
$.nmsIouThreshold = nmsIouThreshold;
return this;
}
/**
* @param nmsIouThreshold IOU threshold used during inference in NMS post processing. Must be float in the range [0, 1].
*
* @return builder
*
*/
public Builder nmsIouThreshold(String nmsIouThreshold) {
return nmsIouThreshold(Output.of(nmsIouThreshold));
}
/**
* @param numberOfEpochs Number of training epochs. Must be a positive integer.
*
* @return builder
*
*/
public Builder numberOfEpochs(@Nullable Output numberOfEpochs) {
$.numberOfEpochs = numberOfEpochs;
return this;
}
/**
* @param numberOfEpochs Number of training epochs. Must be a positive integer.
*
* @return builder
*
*/
public Builder numberOfEpochs(String numberOfEpochs) {
return numberOfEpochs(Output.of(numberOfEpochs));
}
/**
* @param numberOfWorkers Number of data loader workers. Must be a non-negative integer.
*
* @return builder
*
*/
public Builder numberOfWorkers(@Nullable Output numberOfWorkers) {
$.numberOfWorkers = numberOfWorkers;
return this;
}
/**
* @param numberOfWorkers Number of data loader workers. Must be a non-negative integer.
*
* @return builder
*
*/
public Builder numberOfWorkers(String numberOfWorkers) {
return numberOfWorkers(Output.of(numberOfWorkers));
}
/**
* @param optimizer Type of optimizer. Must be either 'sgd', 'adam', or 'adamw'.
*
* @return builder
*
*/
public Builder optimizer(@Nullable Output optimizer) {
$.optimizer = optimizer;
return this;
}
/**
* @param optimizer Type of optimizer. Must be either 'sgd', 'adam', or 'adamw'.
*
* @return builder
*
*/
public Builder optimizer(String optimizer) {
return optimizer(Output.of(optimizer));
}
/**
* @param randomSeed Random seed to be used when using deterministic training.
*
* @return builder
*
*/
public Builder randomSeed(@Nullable Output randomSeed) {
$.randomSeed = randomSeed;
return this;
}
/**
* @param randomSeed Random seed to be used when using deterministic training.
*
* @return builder
*
*/
public Builder randomSeed(String randomSeed) {
return randomSeed(Output.of(randomSeed));
}
/**
* @param stepLRGamma Value of gamma when learning rate scheduler is 'step'. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder stepLRGamma(@Nullable Output stepLRGamma) {
$.stepLRGamma = stepLRGamma;
return this;
}
/**
* @param stepLRGamma Value of gamma when learning rate scheduler is 'step'. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder stepLRGamma(String stepLRGamma) {
return stepLRGamma(Output.of(stepLRGamma));
}
/**
* @param stepLRStepSize Value of step size when learning rate scheduler is 'step'. Must be a positive integer.
*
* @return builder
*
*/
public Builder stepLRStepSize(@Nullable Output stepLRStepSize) {
$.stepLRStepSize = stepLRStepSize;
return this;
}
/**
* @param stepLRStepSize Value of step size when learning rate scheduler is 'step'. Must be a positive integer.
*
* @return builder
*
*/
public Builder stepLRStepSize(String stepLRStepSize) {
return stepLRStepSize(Output.of(stepLRStepSize));
}
/**
* @param tileGridSize The grid size to use for tiling each image. Note: TileGridSize must not be
* None to enable small object detection logic. A string containing two integers in mxn format.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder tileGridSize(@Nullable Output tileGridSize) {
$.tileGridSize = tileGridSize;
return this;
}
/**
* @param tileGridSize The grid size to use for tiling each image. Note: TileGridSize must not be
* None to enable small object detection logic. A string containing two integers in mxn format.
* Note: This settings is not supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder tileGridSize(String tileGridSize) {
return tileGridSize(Output.of(tileGridSize));
}
/**
* @param tileOverlapRatio Overlap ratio between adjacent tiles in each dimension. Must be float in the range [0, 1).
* Note: This settings is not supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder tileOverlapRatio(@Nullable Output tileOverlapRatio) {
$.tileOverlapRatio = tileOverlapRatio;
return this;
}
/**
* @param tileOverlapRatio Overlap ratio between adjacent tiles in each dimension. Must be float in the range [0, 1).
* Note: This settings is not supported for the 'yolov5' algorithm.
*
* @return builder
*
*/
public Builder tileOverlapRatio(String tileOverlapRatio) {
return tileOverlapRatio(Output.of(tileOverlapRatio));
}
/**
* @param tilePredictionsNmsThreshold The IOU threshold to use to perform NMS while merging predictions from tiles and image.
* Used in validation/ inference. Must be float in the range [0, 1].
* Note: This settings is not supported for the 'yolov5' algorithm.
* NMS: Non-maximum suppression
*
* @return builder
*
*/
public Builder tilePredictionsNmsThreshold(@Nullable Output tilePredictionsNmsThreshold) {
$.tilePredictionsNmsThreshold = tilePredictionsNmsThreshold;
return this;
}
/**
* @param tilePredictionsNmsThreshold The IOU threshold to use to perform NMS while merging predictions from tiles and image.
* Used in validation/ inference. Must be float in the range [0, 1].
* Note: This settings is not supported for the 'yolov5' algorithm.
* NMS: Non-maximum suppression
*
* @return builder
*
*/
public Builder tilePredictionsNmsThreshold(String tilePredictionsNmsThreshold) {
return tilePredictionsNmsThreshold(Output.of(tilePredictionsNmsThreshold));
}
/**
* @param trainingBatchSize Training batch size. Must be a positive integer.
*
* @return builder
*
*/
public Builder trainingBatchSize(@Nullable Output trainingBatchSize) {
$.trainingBatchSize = trainingBatchSize;
return this;
}
/**
* @param trainingBatchSize Training batch size. Must be a positive integer.
*
* @return builder
*
*/
public Builder trainingBatchSize(String trainingBatchSize) {
return trainingBatchSize(Output.of(trainingBatchSize));
}
/**
* @param validationBatchSize Validation batch size. Must be a positive integer.
*
* @return builder
*
*/
public Builder validationBatchSize(@Nullable Output validationBatchSize) {
$.validationBatchSize = validationBatchSize;
return this;
}
/**
* @param validationBatchSize Validation batch size. Must be a positive integer.
*
* @return builder
*
*/
public Builder validationBatchSize(String validationBatchSize) {
return validationBatchSize(Output.of(validationBatchSize));
}
/**
* @param validationIouThreshold IOU threshold to use when computing validation metric. Must be float in the range [0, 1].
*
* @return builder
*
*/
public Builder validationIouThreshold(@Nullable Output validationIouThreshold) {
$.validationIouThreshold = validationIouThreshold;
return this;
}
/**
* @param validationIouThreshold IOU threshold to use when computing validation metric. Must be float in the range [0, 1].
*
* @return builder
*
*/
public Builder validationIouThreshold(String validationIouThreshold) {
return validationIouThreshold(Output.of(validationIouThreshold));
}
/**
* @param validationMetricType Metric computation method to use for validation metrics. Must be 'none', 'coco', 'voc', or 'coco_voc'.
*
* @return builder
*
*/
public Builder validationMetricType(@Nullable Output validationMetricType) {
$.validationMetricType = validationMetricType;
return this;
}
/**
* @param validationMetricType Metric computation method to use for validation metrics. Must be 'none', 'coco', 'voc', or 'coco_voc'.
*
* @return builder
*
*/
public Builder validationMetricType(String validationMetricType) {
return validationMetricType(Output.of(validationMetricType));
}
/**
* @param warmupCosineLRCycles Value of cosine cycle when learning rate scheduler is 'warmup_cosine'. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder warmupCosineLRCycles(@Nullable Output warmupCosineLRCycles) {
$.warmupCosineLRCycles = warmupCosineLRCycles;
return this;
}
/**
* @param warmupCosineLRCycles Value of cosine cycle when learning rate scheduler is 'warmup_cosine'. Must be a float in the range [0, 1].
*
* @return builder
*
*/
public Builder warmupCosineLRCycles(String warmupCosineLRCycles) {
return warmupCosineLRCycles(Output.of(warmupCosineLRCycles));
}
/**
* @param warmupCosineLRWarmupEpochs Value of warmup epochs when learning rate scheduler is 'warmup_cosine'. Must be a positive integer.
*
* @return builder
*
*/
public Builder warmupCosineLRWarmupEpochs(@Nullable Output warmupCosineLRWarmupEpochs) {
$.warmupCosineLRWarmupEpochs = warmupCosineLRWarmupEpochs;
return this;
}
/**
* @param warmupCosineLRWarmupEpochs Value of warmup epochs when learning rate scheduler is 'warmup_cosine'. Must be a positive integer.
*
* @return builder
*
*/
public Builder warmupCosineLRWarmupEpochs(String warmupCosineLRWarmupEpochs) {
return warmupCosineLRWarmupEpochs(Output.of(warmupCosineLRWarmupEpochs));
}
/**
* @param weightDecay Value of weight decay when optimizer is 'sgd', 'adam', or 'adamw'. Must be a float in the range[0, 1].
*
* @return builder
*
*/
public Builder weightDecay(@Nullable Output weightDecay) {
$.weightDecay = weightDecay;
return this;
}
/**
* @param weightDecay Value of weight decay when optimizer is 'sgd', 'adam', or 'adamw'. Must be a float in the range[0, 1].
*
* @return builder
*
*/
public Builder weightDecay(String weightDecay) {
return weightDecay(Output.of(weightDecay));
}
public ImageModelDistributionSettingsObjectDetectionArgs build() {
return $;
}
}
}