/* * 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 { /// /// Describes the S3 data source. /// /// /// /// Your input bucket must be in the same Amazon Web Services region as your training /// job. /// /// public partial class S3DataSource { private List _attributeNames = new List(); private List _instanceGroupNames = new List(); private S3DataDistribution _s3DataDistributionType; private S3DataType _s3DataType; private string _s3Uri; /// /// Gets and sets the property AttributeNames. /// /// A list of one or more attribute names to use that are found in a specified augmented /// manifest file. /// /// [AWSProperty(Max=16)] public List AttributeNames { get { return this._attributeNames; } set { this._attributeNames = value; } } // Check to see if AttributeNames property is set internal bool IsSetAttributeNames() { return this._attributeNames != null && this._attributeNames.Count > 0; } /// /// Gets and sets the property InstanceGroupNames. /// /// A list of names of instance groups that get data from the S3 data source. /// /// [AWSProperty(Max=5)] public List InstanceGroupNames { get { return this._instanceGroupNames; } set { this._instanceGroupNames = value; } } // Check to see if InstanceGroupNames property is set internal bool IsSetInstanceGroupNames() { return this._instanceGroupNames != null && this._instanceGroupNames.Count > 0; } /// /// Gets and sets the property S3DataDistributionType. /// /// If you want SageMaker to replicate the entire dataset on each ML compute instance /// that is launched for model training, specify FullyReplicated. /// /// /// /// If you want SageMaker to replicate a subset of data on each ML compute instance that /// is launched for model training, specify ShardedByS3Key. If there are /// n ML compute instances launched for a training job, each instance gets approximately /// 1/n of the number of S3 objects. In this case, model training on each machine /// uses only the subset of training data. /// /// /// /// Don't choose more ML compute instances for training than available S3 objects. If /// you do, some nodes won't get any data and you will pay for nodes that aren't getting /// any training data. This applies in both File and Pipe modes. Keep this in mind when /// developing algorithms. /// /// /// /// In distributed training, where you use multiple ML compute EC2 instances, you might /// choose ShardedByS3Key. If the algorithm requires copying training data /// to the ML storage volume (when TrainingInputMode is set to File), /// this copies 1/n of the number of objects. /// /// public S3DataDistribution S3DataDistributionType { get { return this._s3DataDistributionType; } set { this._s3DataDistributionType = value; } } // Check to see if S3DataDistributionType property is set internal bool IsSetS3DataDistributionType() { return this._s3DataDistributionType != null; } /// /// Gets and sets the property S3DataType. /// /// If you choose S3Prefix, S3Uri identifies a key name prefix. /// SageMaker uses all objects that match the specified key name prefix for model training. /// /// /// /// /// If you choose ManifestFile, S3Uri identifies an object that /// is a manifest file containing a list of object keys that you want SageMaker to use /// for model training. /// /// /// /// If you choose AugmentedManifestFile, S3Uri identifies an object that /// is an augmented manifest file in JSON lines format. This file contains the data you /// want to use for model training. AugmentedManifestFile can only be used /// if the Channel's input mode is Pipe. /// /// [AWSProperty(Required=true)] public S3DataType S3DataType { get { return this._s3DataType; } set { this._s3DataType = value; } } // Check to see if S3DataType property is set internal bool IsSetS3DataType() { return this._s3DataType != null; } /// /// Gets and sets the property S3Uri. /// /// Depending on the value specified for the S3DataType, identifies either /// a key name prefix or a manifest. For example: /// ///
  • /// /// A key name prefix might look like this: s3://bucketname/exampleprefix /// /// ///
  • /// /// A manifest might look like this: s3://bucketname/example.manifest /// /// /// /// A manifest is an S3 object which is a JSON file consisting of an array of elements. /// The first element is a prefix which is followed by one or more suffixes. SageMaker /// appends the suffix elements to the prefix to get a full set of S3Uri. /// Note that the prefix must be a valid non-empty S3Uri that precludes users /// from specifying a manifest whose individual S3Uri is sourced from different /// S3 buckets. /// /// /// /// The following code example shows a valid manifest format: /// /// /// /// [ {"prefix": "s3://customer_bucket/some/prefix/"}, /// /// /// /// "relative/path/to/custdata-1", /// /// /// /// "relative/path/custdata-2", /// /// /// /// ... /// /// /// /// "relative/path/custdata-N" /// /// /// /// ] /// /// /// /// This JSON is equivalent to the following S3Uri list: /// /// /// /// s3://customer_bucket/some/prefix/relative/path/to/custdata-1 /// /// /// /// s3://customer_bucket/some/prefix/relative/path/custdata-2 /// /// /// /// ... /// /// /// /// s3://customer_bucket/some/prefix/relative/path/custdata-N /// /// /// /// The complete set of S3Uri in this manifest is the input data for the /// channel for this data source. The object that each S3Uri points to must /// be readable by the IAM role that SageMaker uses to perform tasks on your behalf. /// ///
/// /// Your input bucket must be located in same Amazon Web Services region as your training /// job. /// ///
[AWSProperty(Required=true, Max=1024)] public string S3Uri { get { return this._s3Uri; } set { this._s3Uri = value; } } // Check to see if S3Uri property is set internal bool IsSetS3Uri() { return this._s3Uri != null; } } }