/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the sagemaker-2017-07-24.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.SageMaker.Model { /// /// Container for the parameters to the CreateTrainingJob operation. /// Starts a model training job. After training completes, SageMaker saves the resulting /// model artifacts to an Amazon S3 location that you specify. /// /// /// /// If you choose to host your model using SageMaker hosting services, you can use the /// resulting model artifacts as part of the model. You can also use the artifacts in /// a machine learning service other than SageMaker, provided that you know how to use /// them for inference. /// /// /// /// In the request body, you provide the following: /// /// /// /// For more information about SageMaker, see How /// It Works. /// /// public partial class CreateTrainingJobRequest : AmazonSageMakerRequest { private AlgorithmSpecification _algorithmSpecification; private CheckpointConfig _checkpointConfig; private DebugHookConfig _debugHookConfig; private List _debugRuleConfigurations = new List(); private bool? _enableInterContainerTrafficEncryption; private bool? _enableManagedSpotTraining; private bool? _enableNetworkIsolation; private Dictionary _environment = new Dictionary(); private ExperimentConfig _experimentConfig; private Dictionary _hyperParameters = new Dictionary(); private List _inputDataConfig = new List(); private OutputDataConfig _outputDataConfig; private ProfilerConfig _profilerConfig; private List _profilerRuleConfigurations = new List(); private ResourceConfig _resourceConfig; private RetryStrategy _retryStrategy; private string _roleArn; private StoppingCondition _stoppingCondition; private List _tags = new List(); private TensorBoardOutputConfig _tensorBoardOutputConfig; private string _trainingJobName; private VpcConfig _vpcConfig; /// /// Gets and sets the property AlgorithmSpecification. /// /// The registry path of the Docker image that contains the training algorithm and algorithm-specific /// metadata, including the input mode. For more information about algorithms provided /// by SageMaker, see Algorithms. /// For information about providing your own algorithms, see Using /// Your Own Algorithms with Amazon SageMaker. /// /// [AWSProperty(Required=true)] public AlgorithmSpecification AlgorithmSpecification { get { return this._algorithmSpecification; } set { this._algorithmSpecification = value; } } // Check to see if AlgorithmSpecification property is set internal bool IsSetAlgorithmSpecification() { return this._algorithmSpecification != null; } /// /// Gets and sets the property CheckpointConfig. /// /// Contains information about the output location for managed spot training checkpoint /// data. /// /// public CheckpointConfig CheckpointConfig { get { return this._checkpointConfig; } set { this._checkpointConfig = value; } } // Check to see if CheckpointConfig property is set internal bool IsSetCheckpointConfig() { return this._checkpointConfig != null; } /// /// Gets and sets the property DebugHookConfig. /// public DebugHookConfig DebugHookConfig { get { return this._debugHookConfig; } set { this._debugHookConfig = value; } } // Check to see if DebugHookConfig property is set internal bool IsSetDebugHookConfig() { return this._debugHookConfig != null; } /// /// Gets and sets the property DebugRuleConfigurations. /// /// Configuration information for Amazon SageMaker Debugger rules for debugging output /// tensors. /// /// [AWSProperty(Min=0, Max=20)] public List DebugRuleConfigurations { get { return this._debugRuleConfigurations; } set { this._debugRuleConfigurations = value; } } // Check to see if DebugRuleConfigurations property is set internal bool IsSetDebugRuleConfigurations() { return this._debugRuleConfigurations != null && this._debugRuleConfigurations.Count > 0; } /// /// Gets and sets the property EnableInterContainerTrafficEncryption. /// /// To encrypt all communications between ML compute instances in distributed training, /// choose True. Encryption provides greater security for distributed training, /// but training might take longer. How long it takes depends on the amount of communication /// between compute instances, especially if you use a deep learning algorithm in distributed /// training. For more information, see Protect /// Communications Between ML Compute Instances in a Distributed Training Job. /// /// public bool EnableInterContainerTrafficEncryption { get { return this._enableInterContainerTrafficEncryption.GetValueOrDefault(); } set { this._enableInterContainerTrafficEncryption = value; } } // Check to see if EnableInterContainerTrafficEncryption property is set internal bool IsSetEnableInterContainerTrafficEncryption() { return this._enableInterContainerTrafficEncryption.HasValue; } /// /// Gets and sets the property EnableManagedSpotTraining. /// /// To train models using managed spot training, choose True. Managed spot /// training provides a fully managed and scalable infrastructure for training machine /// learning models. this option is useful when training jobs can be interrupted and when /// there is flexibility when the training job is run. /// /// /// /// The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and /// can be used as a starting point to train models incrementally. Amazon SageMaker provides /// metrics and logs in CloudWatch. They can be used to see when managed spot training /// jobs are running, interrupted, resumed, or completed. /// /// public bool EnableManagedSpotTraining { get { return this._enableManagedSpotTraining.GetValueOrDefault(); } set { this._enableManagedSpotTraining = value; } } // Check to see if EnableManagedSpotTraining property is set internal bool IsSetEnableManagedSpotTraining() { return this._enableManagedSpotTraining.HasValue; } /// /// Gets and sets the property EnableNetworkIsolation. /// /// Isolates the training container. No inbound or outbound network calls can be made, /// except for calls between peers within a training cluster for distributed training. /// If you enable network isolation for training jobs that are configured to use a VPC, /// SageMaker downloads and uploads customer data and model artifacts through the specified /// VPC, but the training container does not have network access. /// /// public bool EnableNetworkIsolation { get { return this._enableNetworkIsolation.GetValueOrDefault(); } set { this._enableNetworkIsolation = value; } } // Check to see if EnableNetworkIsolation property is set internal bool IsSetEnableNetworkIsolation() { return this._enableNetworkIsolation.HasValue; } /// /// Gets and sets the property Environment. /// /// The environment variables to set in the Docker container. /// /// [AWSProperty(Max=48)] public Dictionary Environment { get { return this._environment; } set { this._environment = value; } } // Check to see if Environment property is set internal bool IsSetEnvironment() { return this._environment != null && this._environment.Count > 0; } /// /// Gets and sets the property ExperimentConfig. /// public ExperimentConfig ExperimentConfig { get { return this._experimentConfig; } set { this._experimentConfig = value; } } // Check to see if ExperimentConfig property is set internal bool IsSetExperimentConfig() { return this._experimentConfig != null; } /// /// Gets and sets the property HyperParameters. /// /// Algorithm-specific parameters that influence the quality of the model. You set hyperparameters /// before you start the learning process. For a list of hyperparameters for each training /// algorithm provided by SageMaker, see Algorithms. /// /// /// /// /// You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value /// pair. Each key and value is limited to 256 characters, as specified by the Length /// Constraint. /// /// /// /// Do not include any security-sensitive information including account access IDs, secrets /// or tokens in any hyperparameter field. If the use of security-sensitive credentials /// are detected, SageMaker will reject your training job request and return an exception /// error. /// /// /// [AWSProperty(Min=0, Max=100)] public Dictionary HyperParameters { get { return this._hyperParameters; } set { this._hyperParameters = value; } } // Check to see if HyperParameters property is set internal bool IsSetHyperParameters() { return this._hyperParameters != null && this._hyperParameters.Count > 0; } /// /// Gets and sets the property InputDataConfig. /// /// An array of Channel objects. Each channel is a named input source. InputDataConfig /// describes the input data and its location. /// /// /// /// Algorithms can accept input data from one or more channels. For example, an algorithm /// might have two channels of input data, training_data and validation_data. /// The configuration for each channel provides the S3, EFS, or FSx location where the /// input data is stored. It also provides information about the stored data: the MIME /// type, compression method, and whether the data is wrapped in RecordIO format. /// /// /// /// Depending on the input mode that the algorithm supports, SageMaker either copies input /// data files from an S3 bucket to a local directory in the Docker container, or makes /// it available as input streams. For example, if you specify an EFS location, input /// data files are available as input streams. They do not need to be downloaded. /// /// /// /// Your input must be in the same Amazon Web Services region as your training job. /// /// [AWSProperty(Min=1, Max=20)] public List InputDataConfig { get { return this._inputDataConfig; } set { this._inputDataConfig = value; } } // Check to see if InputDataConfig property is set internal bool IsSetInputDataConfig() { return this._inputDataConfig != null && this._inputDataConfig.Count > 0; } /// /// Gets and sets the property OutputDataConfig. /// /// Specifies the path to the S3 location where you want to store model artifacts. SageMaker /// creates subfolders for the artifacts. /// /// [AWSProperty(Required=true)] public OutputDataConfig OutputDataConfig { get { return this._outputDataConfig; } set { this._outputDataConfig = value; } } // Check to see if OutputDataConfig property is set internal bool IsSetOutputDataConfig() { return this._outputDataConfig != null; } /// /// Gets and sets the property ProfilerConfig. /// public ProfilerConfig ProfilerConfig { get { return this._profilerConfig; } set { this._profilerConfig = value; } } // Check to see if ProfilerConfig property is set internal bool IsSetProfilerConfig() { return this._profilerConfig != null; } /// /// Gets and sets the property ProfilerRuleConfigurations. /// /// Configuration information for Amazon SageMaker Debugger rules for profiling system /// and framework metrics. /// /// [AWSProperty(Min=0, Max=20)] public List ProfilerRuleConfigurations { get { return this._profilerRuleConfigurations; } set { this._profilerRuleConfigurations = value; } } // Check to see if ProfilerRuleConfigurations property is set internal bool IsSetProfilerRuleConfigurations() { return this._profilerRuleConfigurations != null && this._profilerRuleConfigurations.Count > 0; } /// /// Gets and sets the property ResourceConfig. /// /// The resources, including the ML compute instances and ML storage volumes, to use for /// model training. /// /// /// /// ML storage volumes store model artifacts and incremental states. Training algorithms /// might also use ML storage volumes for scratch space. If you want SageMaker to use /// the ML storage volume to store the training data, choose File as the /// TrainingInputMode in the algorithm specification. For distributed training /// algorithms, specify an instance count greater than 1. /// /// [AWSProperty(Required=true)] public ResourceConfig ResourceConfig { get { return this._resourceConfig; } set { this._resourceConfig = value; } } // Check to see if ResourceConfig property is set internal bool IsSetResourceConfig() { return this._resourceConfig != null; } /// /// Gets and sets the property RetryStrategy. /// /// The number of times to retry the job when the job fails due to an InternalServerError. /// /// public RetryStrategy RetryStrategy { get { return this._retryStrategy; } set { this._retryStrategy = value; } } // Check to see if RetryStrategy property is set internal bool IsSetRetryStrategy() { return this._retryStrategy != null; } /// /// Gets and sets the property RoleArn. /// /// The Amazon Resource Name (ARN) of an IAM role that SageMaker can assume to perform /// tasks on your behalf. /// /// /// /// During model training, SageMaker needs your permission to read input data from an /// S3 bucket, download a Docker image that contains training code, write model artifacts /// to an S3 bucket, write logs to Amazon CloudWatch Logs, and publish metrics to Amazon /// CloudWatch. You grant permissions for all of these tasks to an IAM role. For more /// information, see SageMaker /// Roles. /// /// /// /// To be able to pass this role to SageMaker, the caller of this API must have the iam:PassRole /// permission. /// /// /// [AWSProperty(Required=true, Min=20, Max=2048)] public string RoleArn { get { return this._roleArn; } set { this._roleArn = value; } } // Check to see if RoleArn property is set internal bool IsSetRoleArn() { return this._roleArn != null; } /// /// Gets and sets the property StoppingCondition. /// /// Specifies a limit to how long a model training job can run. It also specifies how /// long a managed Spot training job has to complete. When the job reaches the time limit, /// SageMaker ends the training job. Use this API to cap model training costs. /// /// /// /// To stop a job, SageMaker sends the algorithm the SIGTERM signal, which /// delays job termination for 120 seconds. Algorithms can use this 120-second window /// to save the model artifacts, so the results of training are not lost. /// /// [AWSProperty(Required=true)] public StoppingCondition StoppingCondition { get { return this._stoppingCondition; } set { this._stoppingCondition = value; } } // Check to see if StoppingCondition property is set internal bool IsSetStoppingCondition() { return this._stoppingCondition != null; } /// /// Gets and sets the property Tags. /// /// An array of key-value pairs. You can use tags to categorize your Amazon Web Services /// resources in different ways, for example, by purpose, owner, or environment. For more /// information, see Tagging /// Amazon Web Services Resources. /// /// [AWSProperty(Min=0, Max=50)] public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property TensorBoardOutputConfig. /// public TensorBoardOutputConfig TensorBoardOutputConfig { get { return this._tensorBoardOutputConfig; } set { this._tensorBoardOutputConfig = value; } } // Check to see if TensorBoardOutputConfig property is set internal bool IsSetTensorBoardOutputConfig() { return this._tensorBoardOutputConfig != null; } /// /// Gets and sets the property TrainingJobName. /// /// The name of the training job. The name must be unique within an Amazon Web Services /// Region in an Amazon Web Services account. /// /// [AWSProperty(Required=true, Min=1, Max=63)] public string TrainingJobName { get { return this._trainingJobName; } set { this._trainingJobName = value; } } // Check to see if TrainingJobName property is set internal bool IsSetTrainingJobName() { return this._trainingJobName != null; } /// /// Gets and sets the property VpcConfig. /// /// A VpcConfig /// object that specifies the VPC that you want your training job to connect to. Control /// access to and from your training container by configuring the VPC. For more information, /// see Protect /// Training Jobs by Using an Amazon Virtual Private Cloud. /// /// public VpcConfig VpcConfig { get { return this._vpcConfig; } set { this._vpcConfig = value; } } // Check to see if VpcConfig property is set internal bool IsSetVpcConfig() { return this._vpcConfig != null; } } }