/*
* 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
{
///
/// A channel is a named input source that training algorithms can consume.
///
public partial class Channel
{
private string _channelName;
private CompressionType _compressionType;
private string _contentType;
private DataSource _dataSource;
private TrainingInputMode _inputMode;
private RecordWrapper _recordWrapperType;
private ShuffleConfig _shuffleConfig;
///
/// Gets and sets the property ChannelName.
///
/// The name of the channel.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string ChannelName
{
get { return this._channelName; }
set { this._channelName = value; }
}
// Check to see if ChannelName property is set
internal bool IsSetChannelName()
{
return this._channelName != null;
}
///
/// Gets and sets the property 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.
///
///
public CompressionType CompressionType
{
get { return this._compressionType; }
set { this._compressionType = value; }
}
// Check to see if CompressionType property is set
internal bool IsSetCompressionType()
{
return this._compressionType != null;
}
///
/// Gets and sets the property ContentType.
///
/// The MIME type of the data.
///
///
[AWSProperty(Max=256)]
public string ContentType
{
get { return this._contentType; }
set { this._contentType = value; }
}
// Check to see if ContentType property is set
internal bool IsSetContentType()
{
return this._contentType != null;
}
///
/// Gets and sets the property DataSource.
///
/// The location of the channel data.
///
///
[AWSProperty(Required=true)]
public DataSource DataSource
{
get { return this._dataSource; }
set { this._dataSource = value; }
}
// Check to see if DataSource property is set
internal bool IsSetDataSource()
{
return this._dataSource != null;
}
///
/// Gets and sets the property 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.
///
///
public TrainingInputMode InputMode
{
get { return this._inputMode; }
set { this._inputMode = value; }
}
// Check to see if InputMode property is set
internal bool IsSetInputMode()
{
return this._inputMode != null;
}
///
/// Gets and sets the property 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.
///
///
public RecordWrapper RecordWrapperType
{
get { return this._recordWrapperType; }
set { this._recordWrapperType = value; }
}
// Check to see if RecordWrapperType property is set
internal bool IsSetRecordWrapperType()
{
return this._recordWrapperType != null;
}
///
/// Gets and sets the property 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.
///
///
public ShuffleConfig ShuffleConfig
{
get { return this._shuffleConfig; }
set { this._shuffleConfig = value; }
}
// Check to see if ShuffleConfig property is set
internal bool IsSetShuffleConfig()
{
return this._shuffleConfig != null;
}
}
}