/*
* 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
{
///
/// The configuration of resources, including compute instances and storage volumes for
/// use in training jobs launched by hyperparameter tuning jobs. HyperParameterTuningResourceConfig
/// is similar to ResourceConfig
, but has the additional InstanceConfigs
/// and AllocationStrategy
fields to allow for flexible instance management.
/// Specify one or more instance types, count, and the allocation strategy for instance
/// selection.
///
///
///
/// HyperParameterTuningResourceConfig
supports the capabilities of ResourceConfig
/// with the exception of KeepAlivePeriodInSeconds
. Hyperparameter tuning
/// jobs use warm pools by default, which reuse clusters between training jobs.
///
///
///
public partial class HyperParameterTuningResourceConfig
{
private HyperParameterTuningAllocationStrategy _allocationStrategy;
private List _instanceConfigs = new List();
private int? _instanceCount;
private TrainingInstanceType _instanceType;
private string _volumeKmsKeyId;
private int? _volumeSizeInGB;
///
/// Gets and sets the property AllocationStrategy.
///
/// The strategy that determines the order of preference for resources specified in InstanceConfigs
/// used in hyperparameter optimization.
///
///
public HyperParameterTuningAllocationStrategy AllocationStrategy
{
get { return this._allocationStrategy; }
set { this._allocationStrategy = value; }
}
// Check to see if AllocationStrategy property is set
internal bool IsSetAllocationStrategy()
{
return this._allocationStrategy != null;
}
///
/// Gets and sets the property InstanceConfigs.
///
/// A list containing the configuration(s) for one or more resources for processing hyperparameter
/// jobs. These resources include compute instances and storage volumes to use in model
/// training jobs launched by hyperparameter tuning jobs. The AllocationStrategy
/// controls the order in which multiple configurations provided in InstanceConfigs
/// are used.
///
///
///
/// If you only want to use a single instance configuration inside the HyperParameterTuningResourceConfig
/// API, do not provide a value for InstanceConfigs
. Instead, use InstanceType
,
/// VolumeSizeInGB
and InstanceCount
. If you use InstanceConfigs
,
/// do not provide values for InstanceType
, VolumeSizeInGB
or
/// InstanceCount
.
///
///
///
[AWSProperty(Min=1, Max=6)]
public List InstanceConfigs
{
get { return this._instanceConfigs; }
set { this._instanceConfigs = value; }
}
// Check to see if InstanceConfigs property is set
internal bool IsSetInstanceConfigs()
{
return this._instanceConfigs != null && this._instanceConfigs.Count > 0;
}
///
/// Gets and sets the property InstanceCount.
///
/// The number of compute instances of type InstanceType
to use. For distributed
/// training, select a value greater than 1.
///
///
[AWSProperty(Min=0)]
public int InstanceCount
{
get { return this._instanceCount.GetValueOrDefault(); }
set { this._instanceCount = value; }
}
// Check to see if InstanceCount property is set
internal bool IsSetInstanceCount()
{
return this._instanceCount.HasValue;
}
///
/// Gets and sets the property InstanceType.
///
/// The instance type used to run hyperparameter optimization tuning jobs. See
/// descriptions of instance types for more information.
///
///
public TrainingInstanceType InstanceType
{
get { return this._instanceType; }
set { this._instanceType = value; }
}
// Check to see if InstanceType property is set
internal bool IsSetInstanceType()
{
return this._instanceType != null;
}
///
/// Gets and sets the property VolumeKmsKeyId.
///
/// A key used by Amazon Web Services Key Management Service to encrypt data on the storage
/// volume attached to the compute instances used to run the training job. You can use
/// either of the following formats to specify a key.
///
///
///
/// KMS Key ID:
///
///
///
/// "1234abcd-12ab-34cd-56ef-1234567890ab"
///
///
///
/// Amazon Resource Name (ARN) of a KMS key:
///
///
///
/// "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
///
///
///
///
/// Some instances use local storage, which use a hardware
/// module to encrypt storage volumes. If you choose one of these instance types,
/// you cannot request a VolumeKmsKeyId
. For a list of instance types that
/// use local storage, see instance
/// store volumes. For more information about Amazon Web Services Key Management Service,
/// see KMS
/// encryption for more information.
///
///
[AWSProperty(Max=2048)]
public string VolumeKmsKeyId
{
get { return this._volumeKmsKeyId; }
set { this._volumeKmsKeyId = value; }
}
// Check to see if VolumeKmsKeyId property is set
internal bool IsSetVolumeKmsKeyId()
{
return this._volumeKmsKeyId != null;
}
///
/// Gets and sets the property VolumeSizeInGB.
///
/// The volume size in GB for the storage volume to be used in processing hyperparameter
/// optimization jobs (optional). These volumes store model artifacts, incremental states
/// and optionally, scratch space for training algorithms. Do not provide a value for
/// this parameter if a value for InstanceConfigs
is also specified.
///
///
///
/// Some instance types have a fixed total local storage size. If you select one of these
/// instances for training, VolumeSizeInGB
cannot be greater than this total
/// size. For a list of instance types with local instance storage and their sizes, see
/// instance
/// store volumes.
///
///
///
/// SageMaker supports only the General
/// Purpose SSD (gp2) storage volume type.
///
///
///
[AWSProperty(Min=0)]
public int VolumeSizeInGB
{
get { return this._volumeSizeInGB.GetValueOrDefault(); }
set { this._volumeSizeInGB = value; }
}
// Check to see if VolumeSizeInGB property is set
internal bool IsSetVolumeSizeInGB()
{
return this._volumeSizeInGB.HasValue;
}
}
}