/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SageMaker { namespace Model { /** *

Specifies a limit to how long a model training job or model compilation 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 or compilation * job. Use this API to cap model training costs.

To stop a training 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.

The * training algorithms provided by SageMaker automatically save the intermediate * results of a model training job when possible. This attempt to save artifacts is * only a best effort case as model might not be in a state from which it can be * saved. For example, if training has just started, the model might not be ready * to save. When saved, this intermediate data is a valid model artifact. You can * use it to create a model with CreateModel.

The Neural * Topic Model (NTM) currently does not support saving intermediate model * artifacts. When training NTMs, make sure that the maximum runtime is sufficient * for the training job to complete.

See Also:

AWS * API Reference

*/ class StoppingCondition { public: AWS_SAGEMAKER_API StoppingCondition(); AWS_SAGEMAKER_API StoppingCondition(Aws::Utils::Json::JsonView jsonValue); AWS_SAGEMAKER_API StoppingCondition& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SAGEMAKER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The maximum length of time, in seconds, that a training or compilation job * can run before it is stopped.

For compilation jobs, if the job does not * complete during this time, a TimeOut error is generated. We * recommend starting with 900 seconds and increasing as necessary based on your * model.

For all other jobs, if the job does not complete during this time, * SageMaker ends the job. When RetryStrategy is specified in the job * request, MaxRuntimeInSeconds specifies the maximum time for all of * the attempts in total, not each individual attempt. The default value is 1 day. * The maximum value is 28 days.

The maximum time that a * TrainingJob can run in total, including any time spent publishing * metrics or archiving and uploading models after it has been stopped, is 30 * days.

*/ inline int GetMaxRuntimeInSeconds() const{ return m_maxRuntimeInSeconds; } /** *

The maximum length of time, in seconds, that a training or compilation job * can run before it is stopped.

For compilation jobs, if the job does not * complete during this time, a TimeOut error is generated. We * recommend starting with 900 seconds and increasing as necessary based on your * model.

For all other jobs, if the job does not complete during this time, * SageMaker ends the job. When RetryStrategy is specified in the job * request, MaxRuntimeInSeconds specifies the maximum time for all of * the attempts in total, not each individual attempt. The default value is 1 day. * The maximum value is 28 days.

The maximum time that a * TrainingJob can run in total, including any time spent publishing * metrics or archiving and uploading models after it has been stopped, is 30 * days.

*/ inline bool MaxRuntimeInSecondsHasBeenSet() const { return m_maxRuntimeInSecondsHasBeenSet; } /** *

The maximum length of time, in seconds, that a training or compilation job * can run before it is stopped.

For compilation jobs, if the job does not * complete during this time, a TimeOut error is generated. We * recommend starting with 900 seconds and increasing as necessary based on your * model.

For all other jobs, if the job does not complete during this time, * SageMaker ends the job. When RetryStrategy is specified in the job * request, MaxRuntimeInSeconds specifies the maximum time for all of * the attempts in total, not each individual attempt. The default value is 1 day. * The maximum value is 28 days.

The maximum time that a * TrainingJob can run in total, including any time spent publishing * metrics or archiving and uploading models after it has been stopped, is 30 * days.

*/ inline void SetMaxRuntimeInSeconds(int value) { m_maxRuntimeInSecondsHasBeenSet = true; m_maxRuntimeInSeconds = value; } /** *

The maximum length of time, in seconds, that a training or compilation job * can run before it is stopped.

For compilation jobs, if the job does not * complete during this time, a TimeOut error is generated. We * recommend starting with 900 seconds and increasing as necessary based on your * model.

For all other jobs, if the job does not complete during this time, * SageMaker ends the job. When RetryStrategy is specified in the job * request, MaxRuntimeInSeconds specifies the maximum time for all of * the attempts in total, not each individual attempt. The default value is 1 day. * The maximum value is 28 days.

The maximum time that a * TrainingJob can run in total, including any time spent publishing * metrics or archiving and uploading models after it has been stopped, is 30 * days.

*/ inline StoppingCondition& WithMaxRuntimeInSeconds(int value) { SetMaxRuntimeInSeconds(value); return *this;} /** *

The maximum length of time, in seconds, that a managed Spot training job has * to complete. It is the amount of time spent waiting for Spot capacity plus the * amount of time the job can run. It must be equal to or greater than * MaxRuntimeInSeconds. If the job does not complete during this time, * SageMaker ends the job.

When RetryStrategy is specified in * the job request, MaxWaitTimeInSeconds specifies the maximum time * for all of the attempts in total, not each individual attempt.

*/ inline int GetMaxWaitTimeInSeconds() const{ return m_maxWaitTimeInSeconds; } /** *

The maximum length of time, in seconds, that a managed Spot training job has * to complete. It is the amount of time spent waiting for Spot capacity plus the * amount of time the job can run. It must be equal to or greater than * MaxRuntimeInSeconds. If the job does not complete during this time, * SageMaker ends the job.

When RetryStrategy is specified in * the job request, MaxWaitTimeInSeconds specifies the maximum time * for all of the attempts in total, not each individual attempt.

*/ inline bool MaxWaitTimeInSecondsHasBeenSet() const { return m_maxWaitTimeInSecondsHasBeenSet; } /** *

The maximum length of time, in seconds, that a managed Spot training job has * to complete. It is the amount of time spent waiting for Spot capacity plus the * amount of time the job can run. It must be equal to or greater than * MaxRuntimeInSeconds. If the job does not complete during this time, * SageMaker ends the job.

When RetryStrategy is specified in * the job request, MaxWaitTimeInSeconds specifies the maximum time * for all of the attempts in total, not each individual attempt.

*/ inline void SetMaxWaitTimeInSeconds(int value) { m_maxWaitTimeInSecondsHasBeenSet = true; m_maxWaitTimeInSeconds = value; } /** *

The maximum length of time, in seconds, that a managed Spot training job has * to complete. It is the amount of time spent waiting for Spot capacity plus the * amount of time the job can run. It must be equal to or greater than * MaxRuntimeInSeconds. If the job does not complete during this time, * SageMaker ends the job.

When RetryStrategy is specified in * the job request, MaxWaitTimeInSeconds specifies the maximum time * for all of the attempts in total, not each individual attempt.

*/ inline StoppingCondition& WithMaxWaitTimeInSeconds(int value) { SetMaxWaitTimeInSeconds(value); return *this;} private: int m_maxRuntimeInSeconds; bool m_maxRuntimeInSecondsHasBeenSet = false; int m_maxWaitTimeInSeconds; bool m_maxWaitTimeInSecondsHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws