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

A channel is a named input source that training algorithms can consume. *

See Also:

AWS * API Reference

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

The name of the channel.

*/ inline const Aws::String& GetChannelName() const{ return m_channelName; } /** *

The name of the channel.

*/ inline bool ChannelNameHasBeenSet() const { return m_channelNameHasBeenSet; } /** *

The name of the channel.

*/ inline void SetChannelName(const Aws::String& value) { m_channelNameHasBeenSet = true; m_channelName = value; } /** *

The name of the channel.

*/ inline void SetChannelName(Aws::String&& value) { m_channelNameHasBeenSet = true; m_channelName = std::move(value); } /** *

The name of the channel.

*/ inline void SetChannelName(const char* value) { m_channelNameHasBeenSet = true; m_channelName.assign(value); } /** *

The name of the channel.

*/ inline Channel& WithChannelName(const Aws::String& value) { SetChannelName(value); return *this;} /** *

The name of the channel.

*/ inline Channel& WithChannelName(Aws::String&& value) { SetChannelName(std::move(value)); return *this;} /** *

The name of the channel.

*/ inline Channel& WithChannelName(const char* value) { SetChannelName(value); return *this;} /** *

The location of the channel data.

*/ inline const DataSource& GetDataSource() const{ return m_dataSource; } /** *

The location of the channel data.

*/ inline bool DataSourceHasBeenSet() const { return m_dataSourceHasBeenSet; } /** *

The location of the channel data.

*/ inline void SetDataSource(const DataSource& value) { m_dataSourceHasBeenSet = true; m_dataSource = value; } /** *

The location of the channel data.

*/ inline void SetDataSource(DataSource&& value) { m_dataSourceHasBeenSet = true; m_dataSource = std::move(value); } /** *

The location of the channel data.

*/ inline Channel& WithDataSource(const DataSource& value) { SetDataSource(value); return *this;} /** *

The location of the channel data.

*/ inline Channel& WithDataSource(DataSource&& value) { SetDataSource(std::move(value)); return *this;} /** *

The MIME type of the data.

*/ inline const Aws::String& GetContentType() const{ return m_contentType; } /** *

The MIME type of the data.

*/ inline bool ContentTypeHasBeenSet() const { return m_contentTypeHasBeenSet; } /** *

The MIME type of the data.

*/ inline void SetContentType(const Aws::String& value) { m_contentTypeHasBeenSet = true; m_contentType = value; } /** *

The MIME type of the data.

*/ inline void SetContentType(Aws::String&& value) { m_contentTypeHasBeenSet = true; m_contentType = std::move(value); } /** *

The MIME type of the data.

*/ inline void SetContentType(const char* value) { m_contentTypeHasBeenSet = true; m_contentType.assign(value); } /** *

The MIME type of the data.

*/ inline Channel& WithContentType(const Aws::String& value) { SetContentType(value); return *this;} /** *

The MIME type of the data.

*/ inline Channel& WithContentType(Aws::String&& value) { SetContentType(std::move(value)); return *this;} /** *

The MIME type of the data.

*/ inline Channel& WithContentType(const char* value) { SetContentType(value); return *this;} /** *

If training data is compressed, the compression type. The default value is * None. CompressionType is used only in Pipe input mode. * In File mode, leave this field unset or set it to None.

*/ inline const CompressionType& GetCompressionType() const{ return m_compressionType; } /** *

If training data is compressed, the compression type. The default value is * None. CompressionType is used only in Pipe input mode. * In File mode, leave this field unset or set it to None.

*/ inline bool CompressionTypeHasBeenSet() const { return m_compressionTypeHasBeenSet; } /** *

If training data is compressed, the compression type. The default value is * None. CompressionType is used only in Pipe input mode. * In File mode, leave this field unset or set it to None.

*/ inline void SetCompressionType(const CompressionType& value) { m_compressionTypeHasBeenSet = true; m_compressionType = value; } /** *

If training data is compressed, the compression type. The default value is * None. CompressionType is used only in Pipe input mode. * In File mode, leave this field unset or set it to None.

*/ inline void SetCompressionType(CompressionType&& value) { m_compressionTypeHasBeenSet = true; m_compressionType = std::move(value); } /** *

If training data is compressed, the compression type. The default value is * None. CompressionType is used only in Pipe input mode. * In File mode, leave this field unset or set it to None.

*/ inline Channel& WithCompressionType(const CompressionType& value) { SetCompressionType(value); return *this;} /** *

If training data is compressed, the compression type. The default value is * None. CompressionType is used only in Pipe input mode. * In File mode, leave this field unset or set it to None.

*/ inline Channel& WithCompressionType(CompressionType&& value) { SetCompressionType(std::move(value)); return *this;} /** *

Specify RecordIO as the value when input data is in raw format but the * training algorithm requires the RecordIO format. In this case, SageMaker wraps * each individual S3 object in a RecordIO record. If the input data is already in * RecordIO format, you don't need to set this attribute. For more information, see * Create * a Dataset Using RecordIO.

In File mode, leave this field unset or * set it to None.

*/ inline const RecordWrapper& GetRecordWrapperType() const{ return m_recordWrapperType; } /** *

Specify RecordIO as the value when input data is in raw format but the * training algorithm requires the RecordIO format. In this case, SageMaker wraps * each individual S3 object in a RecordIO record. If the input data is already in * RecordIO format, you don't need to set this attribute. For more information, see * Create * a Dataset Using RecordIO.

In File mode, leave this field unset or * set it to None.

*/ inline bool RecordWrapperTypeHasBeenSet() const { return m_recordWrapperTypeHasBeenSet; } /** *

Specify RecordIO as the value when input data is in raw format but the * training algorithm requires the RecordIO format. In this case, SageMaker wraps * each individual S3 object in a RecordIO record. If the input data is already in * RecordIO format, you don't need to set this attribute. For more information, see * Create * a Dataset Using RecordIO.

In File mode, leave this field unset or * set it to None.

*/ inline void SetRecordWrapperType(const RecordWrapper& value) { m_recordWrapperTypeHasBeenSet = true; m_recordWrapperType = value; } /** *

Specify RecordIO as the value when input data is in raw format but the * training algorithm requires the RecordIO format. In this case, SageMaker wraps * each individual S3 object in a RecordIO record. If the input data is already in * RecordIO format, you don't need to set this attribute. For more information, see * Create * a Dataset Using RecordIO.

In File mode, leave this field unset or * set it to None.

*/ inline void SetRecordWrapperType(RecordWrapper&& value) { m_recordWrapperTypeHasBeenSet = true; m_recordWrapperType = std::move(value); } /** *

Specify RecordIO as the value when input data is in raw format but the * training algorithm requires the RecordIO format. In this case, SageMaker wraps * each individual S3 object in a RecordIO record. If the input data is already in * RecordIO format, you don't need to set this attribute. For more information, see * Create * a Dataset Using RecordIO.

In File mode, leave this field unset or * set it to None.

*/ inline Channel& WithRecordWrapperType(const RecordWrapper& value) { SetRecordWrapperType(value); return *this;} /** *

Specify RecordIO as the value when input data is in raw format but the * training algorithm requires the RecordIO format. In this case, SageMaker wraps * each individual S3 object in a RecordIO record. If the input data is already in * RecordIO format, you don't need to set this attribute. For more information, see * Create * a Dataset Using RecordIO.

In File mode, leave this field unset or * set it to None.

*/ inline Channel& WithRecordWrapperType(RecordWrapper&& value) { SetRecordWrapperType(std::move(value)); return *this;} /** *

(Optional) The input mode to use for the data channel in a training job. If * you don't set a value for InputMode, SageMaker uses the value set * for TrainingInputMode. Use this parameter to override the * TrainingInputMode setting in a AlgorithmSpecification * request when you have a channel that needs a different input mode from the * training job's general setting. To download the data from Amazon Simple Storage * Service (Amazon S3) to the provisioned ML storage volume, and mount the * directory to a Docker volume, use File input mode. To stream data * directly from Amazon S3 to the container, choose Pipe input * mode.

To use a model for incremental training, choose File * input model.

*/ inline const TrainingInputMode& GetInputMode() const{ return m_inputMode; } /** *

(Optional) The input mode to use for the data channel in a training job. If * you don't set a value for InputMode, SageMaker uses the value set * for TrainingInputMode. Use this parameter to override the * TrainingInputMode setting in a AlgorithmSpecification * request when you have a channel that needs a different input mode from the * training job's general setting. To download the data from Amazon Simple Storage * Service (Amazon S3) to the provisioned ML storage volume, and mount the * directory to a Docker volume, use File input mode. To stream data * directly from Amazon S3 to the container, choose Pipe input * mode.

To use a model for incremental training, choose File * input model.

*/ inline bool InputModeHasBeenSet() const { return m_inputModeHasBeenSet; } /** *

(Optional) The input mode to use for the data channel in a training job. If * you don't set a value for InputMode, SageMaker uses the value set * for TrainingInputMode. Use this parameter to override the * TrainingInputMode setting in a AlgorithmSpecification * request when you have a channel that needs a different input mode from the * training job's general setting. To download the data from Amazon Simple Storage * Service (Amazon S3) to the provisioned ML storage volume, and mount the * directory to a Docker volume, use File input mode. To stream data * directly from Amazon S3 to the container, choose Pipe input * mode.

To use a model for incremental training, choose File * input model.

*/ inline void SetInputMode(const TrainingInputMode& value) { m_inputModeHasBeenSet = true; m_inputMode = value; } /** *

(Optional) The input mode to use for the data channel in a training job. If * you don't set a value for InputMode, SageMaker uses the value set * for TrainingInputMode. Use this parameter to override the * TrainingInputMode setting in a AlgorithmSpecification * request when you have a channel that needs a different input mode from the * training job's general setting. To download the data from Amazon Simple Storage * Service (Amazon S3) to the provisioned ML storage volume, and mount the * directory to a Docker volume, use File input mode. To stream data * directly from Amazon S3 to the container, choose Pipe input * mode.

To use a model for incremental training, choose File * input model.

*/ inline void SetInputMode(TrainingInputMode&& value) { m_inputModeHasBeenSet = true; m_inputMode = std::move(value); } /** *

(Optional) The input mode to use for the data channel in a training job. If * you don't set a value for InputMode, SageMaker uses the value set * for TrainingInputMode. Use this parameter to override the * TrainingInputMode setting in a AlgorithmSpecification * request when you have a channel that needs a different input mode from the * training job's general setting. To download the data from Amazon Simple Storage * Service (Amazon S3) to the provisioned ML storage volume, and mount the * directory to a Docker volume, use File input mode. To stream data * directly from Amazon S3 to the container, choose Pipe input * mode.

To use a model for incremental training, choose File * input model.

*/ inline Channel& WithInputMode(const TrainingInputMode& value) { SetInputMode(value); return *this;} /** *

(Optional) The input mode to use for the data channel in a training job. If * you don't set a value for InputMode, SageMaker uses the value set * for TrainingInputMode. Use this parameter to override the * TrainingInputMode setting in a AlgorithmSpecification * request when you have a channel that needs a different input mode from the * training job's general setting. To download the data from Amazon Simple Storage * Service (Amazon S3) to the provisioned ML storage volume, and mount the * directory to a Docker volume, use File input mode. To stream data * directly from Amazon S3 to the container, choose Pipe input * mode.

To use a model for incremental training, choose File * input model.

*/ inline Channel& WithInputMode(TrainingInputMode&& value) { SetInputMode(std::move(value)); return *this;} /** *

A configuration for a shuffle option for input data in a channel. If you use * S3Prefix for S3DataType, this shuffles the results of * the S3 key prefix matches. If you use ManifestFile, the order of * the S3 object references in the ManifestFile is shuffled. If you * use AugmentedManifestFile, the order of the JSON lines in the * AugmentedManifestFile is shuffled. The shuffling order is * determined using the Seed value.

For Pipe input mode, * shuffling is done at the start of every epoch. With large datasets this ensures * that the order of the training data is different for each epoch, it helps reduce * bias and possible overfitting. In a multi-node training job when ShuffleConfig * is combined with S3DataDistributionType of * ShardedByS3Key, the data is shuffled across nodes so that the * content sent to a particular node on the first epoch might be sent to a * different node on the second epoch.

*/ inline const ShuffleConfig& GetShuffleConfig() const{ return m_shuffleConfig; } /** *

A configuration for a shuffle option for input data in a channel. If you use * S3Prefix for S3DataType, this shuffles the results of * the S3 key prefix matches. If you use ManifestFile, the order of * the S3 object references in the ManifestFile is shuffled. If you * use AugmentedManifestFile, the order of the JSON lines in the * AugmentedManifestFile is shuffled. The shuffling order is * determined using the Seed value.

For Pipe input mode, * shuffling is done at the start of every epoch. With large datasets this ensures * that the order of the training data is different for each epoch, it helps reduce * bias and possible overfitting. In a multi-node training job when ShuffleConfig * is combined with S3DataDistributionType of * ShardedByS3Key, the data is shuffled across nodes so that the * content sent to a particular node on the first epoch might be sent to a * different node on the second epoch.

*/ inline bool ShuffleConfigHasBeenSet() const { return m_shuffleConfigHasBeenSet; } /** *

A configuration for a shuffle option for input data in a channel. If you use * S3Prefix for S3DataType, this shuffles the results of * the S3 key prefix matches. If you use ManifestFile, the order of * the S3 object references in the ManifestFile is shuffled. If you * use AugmentedManifestFile, the order of the JSON lines in the * AugmentedManifestFile is shuffled. The shuffling order is * determined using the Seed value.

For Pipe input mode, * shuffling is done at the start of every epoch. With large datasets this ensures * that the order of the training data is different for each epoch, it helps reduce * bias and possible overfitting. In a multi-node training job when ShuffleConfig * is combined with S3DataDistributionType of * ShardedByS3Key, the data is shuffled across nodes so that the * content sent to a particular node on the first epoch might be sent to a * different node on the second epoch.

*/ inline void SetShuffleConfig(const ShuffleConfig& value) { m_shuffleConfigHasBeenSet = true; m_shuffleConfig = value; } /** *

A configuration for a shuffle option for input data in a channel. If you use * S3Prefix for S3DataType, this shuffles the results of * the S3 key prefix matches. If you use ManifestFile, the order of * the S3 object references in the ManifestFile is shuffled. If you * use AugmentedManifestFile, the order of the JSON lines in the * AugmentedManifestFile is shuffled. The shuffling order is * determined using the Seed value.

For Pipe input mode, * shuffling is done at the start of every epoch. With large datasets this ensures * that the order of the training data is different for each epoch, it helps reduce * bias and possible overfitting. In a multi-node training job when ShuffleConfig * is combined with S3DataDistributionType of * ShardedByS3Key, the data is shuffled across nodes so that the * content sent to a particular node on the first epoch might be sent to a * different node on the second epoch.

*/ inline void SetShuffleConfig(ShuffleConfig&& value) { m_shuffleConfigHasBeenSet = true; m_shuffleConfig = std::move(value); } /** *

A configuration for a shuffle option for input data in a channel. If you use * S3Prefix for S3DataType, this shuffles the results of * the S3 key prefix matches. If you use ManifestFile, the order of * the S3 object references in the ManifestFile is shuffled. If you * use AugmentedManifestFile, the order of the JSON lines in the * AugmentedManifestFile is shuffled. The shuffling order is * determined using the Seed value.

For Pipe input mode, * shuffling is done at the start of every epoch. With large datasets this ensures * that the order of the training data is different for each epoch, it helps reduce * bias and possible overfitting. In a multi-node training job when ShuffleConfig * is combined with S3DataDistributionType of * ShardedByS3Key, the data is shuffled across nodes so that the * content sent to a particular node on the first epoch might be sent to a * different node on the second epoch.

*/ inline Channel& WithShuffleConfig(const ShuffleConfig& value) { SetShuffleConfig(value); return *this;} /** *

A configuration for a shuffle option for input data in a channel. If you use * S3Prefix for S3DataType, this shuffles the results of * the S3 key prefix matches. If you use ManifestFile, the order of * the S3 object references in the ManifestFile is shuffled. If you * use AugmentedManifestFile, the order of the JSON lines in the * AugmentedManifestFile is shuffled. The shuffling order is * determined using the Seed value.

For Pipe input mode, * shuffling is done at the start of every epoch. With large datasets this ensures * that the order of the training data is different for each epoch, it helps reduce * bias and possible overfitting. In a multi-node training job when ShuffleConfig * is combined with S3DataDistributionType of * ShardedByS3Key, the data is shuffled across nodes so that the * content sent to a particular node on the first epoch might be sent to a * different node on the second epoch.

*/ inline Channel& WithShuffleConfig(ShuffleConfig&& value) { SetShuffleConfig(std::move(value)); return *this;} private: Aws::String m_channelName; bool m_channelNameHasBeenSet = false; DataSource m_dataSource; bool m_dataSourceHasBeenSet = false; Aws::String m_contentType; bool m_contentTypeHasBeenSet = false; CompressionType m_compressionType; bool m_compressionTypeHasBeenSet = false; RecordWrapper m_recordWrapperType; bool m_recordWrapperTypeHasBeenSet = false; TrainingInputMode m_inputMode; bool m_inputModeHasBeenSet = false; ShuffleConfig m_shuffleConfig; bool m_shuffleConfigHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws