

# TrainingSpecification
<a name="API_TrainingSpecification"></a>

Defines how the algorithm is used for a training job.

## Contents
<a name="API_TrainingSpecification_Contents"></a>

 ** SupportedTrainingInstanceTypes **   <a name="sagemaker-Type-TrainingSpecification-SupportedTrainingInstanceTypes"></a>
A list of the instance types that this algorithm can use for training.  
Type: Array of strings  
Valid Values: `ml.m4.xlarge | ml.m4.2xlarge | ml.m4.4xlarge | ml.m4.10xlarge | ml.m4.16xlarge | ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.m5.large | ml.m5.xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.12xlarge | ml.m5.24xlarge | ml.c4.xlarge | ml.c4.2xlarge | ml.c4.4xlarge | ml.c4.8xlarge | ml.p2.xlarge | ml.p2.8xlarge | ml.p2.16xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3.16xlarge | ml.p3dn.24xlarge | ml.p4d.24xlarge | ml.p4de.24xlarge | ml.p5.48xlarge | ml.p5e.48xlarge | ml.p5en.48xlarge | ml.c5.xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.18xlarge | ml.c5n.xlarge | ml.c5n.2xlarge | ml.c5n.4xlarge | ml.c5n.9xlarge | ml.c5n.18xlarge | ml.g5.xlarge | ml.g5.2xlarge | ml.g5.4xlarge | ml.g5.8xlarge | ml.g5.16xlarge | ml.g5.12xlarge | ml.g5.24xlarge | ml.g5.48xlarge | ml.g6.xlarge | ml.g6.2xlarge | ml.g6.4xlarge | ml.g6.8xlarge | ml.g6.16xlarge | ml.g6.12xlarge | ml.g6.24xlarge | ml.g6.48xlarge | ml.g6e.xlarge | ml.g6e.2xlarge | ml.g6e.4xlarge | ml.g6e.8xlarge | ml.g6e.16xlarge | ml.g6e.12xlarge | ml.g6e.24xlarge | ml.g6e.48xlarge | ml.trn1.2xlarge | ml.trn1.32xlarge | ml.trn1n.32xlarge | ml.trn2.48xlarge | ml.m6i.large | ml.m6i.xlarge | ml.m6i.2xlarge | ml.m6i.4xlarge | ml.m6i.8xlarge | ml.m6i.12xlarge | ml.m6i.16xlarge | ml.m6i.24xlarge | ml.m6i.32xlarge | ml.c6i.xlarge | ml.c6i.2xlarge | ml.c6i.8xlarge | ml.c6i.4xlarge | ml.c6i.12xlarge | ml.c6i.16xlarge | ml.c6i.24xlarge | ml.c6i.32xlarge | ml.r5d.large | ml.r5d.xlarge | ml.r5d.2xlarge | ml.r5d.4xlarge | ml.r5d.8xlarge | ml.r5d.12xlarge | ml.r5d.16xlarge | ml.r5d.24xlarge | ml.t3.medium | ml.t3.large | ml.t3.xlarge | ml.t3.2xlarge | ml.r5.large | ml.r5.xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.p6-b200.48xlarge | ml.m7i.large | ml.m7i.xlarge | ml.m7i.2xlarge | ml.m7i.4xlarge | ml.m7i.8xlarge | ml.m7i.12xlarge | ml.m7i.16xlarge | ml.m7i.24xlarge | ml.m7i.48xlarge | ml.c7i.large | ml.c7i.xlarge | ml.c7i.2xlarge | ml.c7i.4xlarge | ml.c7i.8xlarge | ml.c7i.12xlarge | ml.c7i.16xlarge | ml.c7i.24xlarge | ml.c7i.48xlarge | ml.r7i.large | ml.r7i.xlarge | ml.r7i.2xlarge | ml.r7i.4xlarge | ml.r7i.8xlarge | ml.r7i.12xlarge | ml.r7i.16xlarge | ml.r7i.24xlarge | ml.r7i.48xlarge | ml.p6e-gb200.36xlarge | ml.p5.4xlarge`   
Required: Yes

 ** TrainingChannels **   <a name="sagemaker-Type-TrainingSpecification-TrainingChannels"></a>
A list of `ChannelSpecification` objects, which specify the input sources to be used by the algorithm.  
Type: Array of [ChannelSpecification](API_ChannelSpecification.md) objects  
Array Members: Minimum number of 1 item. Maximum number of 8 items.  
Required: Yes

 ** TrainingImage **   <a name="sagemaker-Type-TrainingSpecification-TrainingImage"></a>
The Amazon ECR registry path of the Docker image that contains the training algorithm.  
Type: String  
Length Constraints: Minimum length of 0. Maximum length of 255.  
Pattern: `[\S]+`   
Required: Yes

 ** AdditionalS3DataSource **   <a name="sagemaker-Type-TrainingSpecification-AdditionalS3DataSource"></a>
The additional data source used during the training job.  
Type: [AdditionalS3DataSource](API_AdditionalS3DataSource.md) object  
Required: No

 ** MetricDefinitions **   <a name="sagemaker-Type-TrainingSpecification-MetricDefinitions"></a>
A list of `MetricDefinition` objects, which are used for parsing metrics generated by the algorithm.  
Type: Array of [MetricDefinition](API_MetricDefinition.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 40 items.  
Required: No

 ** SupportedHyperParameters **   <a name="sagemaker-Type-TrainingSpecification-SupportedHyperParameters"></a>
A list of the `HyperParameterSpecification` objects, that define the supported hyperparameters. This is required if the algorithm supports automatic model tuning.>  
Type: Array of [HyperParameterSpecification](API_HyperParameterSpecification.md) objects  
Array Members: Minimum number of 0 items. Maximum number of 100 items.  
Required: No

 ** SupportedTuningJobObjectiveMetrics **   <a name="sagemaker-Type-TrainingSpecification-SupportedTuningJobObjectiveMetrics"></a>
A list of the metrics that the algorithm emits that can be used as the objective metric in a hyperparameter tuning job.  
Type: Array of [HyperParameterTuningJobObjective](API_HyperParameterTuningJobObjective.md) objects  
Required: No

 ** SupportsDistributedTraining **   <a name="sagemaker-Type-TrainingSpecification-SupportsDistributedTraining"></a>
Indicates whether the algorithm supports distributed training. If set to false, buyers can't request more than one instance during training.  
Type: Boolean  
Required: No

 ** TrainingImageDigest **   <a name="sagemaker-Type-TrainingSpecification-TrainingImageDigest"></a>
An MD5 hash of the training algorithm that identifies the Docker image used for training.  
Type: String  
Length Constraints: Minimum length of 0. Maximum length of 72.  
Pattern: `[Ss][Hh][Aa]256:[0-9a-fA-F]{64}`   
Required: No

## See Also
<a name="API_TrainingSpecification_SeeAlso"></a>

For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/sagemaker-2017-07-24/TrainingSpecification) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/sagemaker-2017-07-24/TrainingSpecification) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/sagemaker-2017-07-24/TrainingSpecification) 