Method: Aws::SageMaker::Client#create_algorithm
- Defined in:
- lib/aws-sdk-sagemaker/client.rb
#create_algorithm(params = {}) ⇒ Types::CreateAlgorithmOutput
Create a machine learning algorithm that you can use in Amazon SageMaker and list in the AWS Marketplace.
Examples:
Request syntax with placeholder values
Request syntax with placeholder values
resp = client.create_algorithm({
algorithm_name: "EntityName", # required
algorithm_description: "EntityDescription",
training_specification: { # required
training_image: "Image", # required
training_image_digest: "ImageDigest",
supported_hyper_parameters: [
{
name: "ParameterName", # required
description: "EntityDescription",
type: "Integer", # required, accepts Integer, Continuous, Categorical, FreeText
range: {
integer_parameter_range_specification: {
min_value: "ParameterValue", # required
max_value: "ParameterValue", # required
},
continuous_parameter_range_specification: {
min_value: "ParameterValue", # required
max_value: "ParameterValue", # required
},
categorical_parameter_range_specification: {
values: ["ParameterValue"], # required
},
},
is_tunable: false,
is_required: false,
default_value: "ParameterValue",
},
],
supported_training_instance_types: ["ml.m4.xlarge"], # required, accepts ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.p3dn.24xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge
supports_distributed_training: false,
metric_definitions: [
{
name: "MetricName", # required
regex: "MetricRegex", # required
},
],
training_channels: [ # required
{
name: "ChannelName", # required
description: "EntityDescription",
is_required: false,
supported_content_types: ["ContentType"], # required
supported_compression_types: ["None"], # accepts None, Gzip
supported_input_modes: ["Pipe"], # required, accepts Pipe, File
},
],
supported_tuning_job_objective_metrics: [
{
type: "Maximize", # required, accepts Maximize, Minimize
metric_name: "MetricName", # required
},
],
},
inference_specification: {
containers: [ # required
{
container_hostname: "ContainerHostname",
image: "Image", # required
image_digest: "ImageDigest",
model_data_url: "Url",
product_id: "ProductId",
},
],
supported_transform_instance_types: ["ml.m4.xlarge"], # required, accepts ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge
supported_realtime_inference_instance_types: ["ml.t2.medium"], # required, accepts ml.t2.medium, ml.t2.large, ml.t2.xlarge, ml.t2.2xlarge, ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.m5d.large, ml.m5d.xlarge, ml.m5d.2xlarge, ml.m5d.4xlarge, ml.m5d.12xlarge, ml.m5d.24xlarge, ml.c4.large, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.c5.large, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.c5d.large, ml.c5d.xlarge, ml.c5d.2xlarge, ml.c5d.4xlarge, ml.c5d.9xlarge, ml.c5d.18xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge, ml.r5.large, ml.r5.xlarge, ml.r5.2xlarge, ml.r5.4xlarge, ml.r5.12xlarge, ml.r5.24xlarge, ml.r5d.large, ml.r5d.xlarge, ml.r5d.2xlarge, ml.r5d.4xlarge, ml.r5d.12xlarge, ml.r5d.24xlarge, ml.inf1.xlarge, ml.inf1.2xlarge, ml.inf1.6xlarge, ml.inf1.24xlarge
supported_content_types: ["ContentType"], # required
supported_response_mime_types: ["ResponseMIMEType"], # required
},
validation_specification: {
validation_role: "RoleArn", # required
validation_profiles: [ # required
{
profile_name: "EntityName", # required
training_job_definition: { # required
training_input_mode: "Pipe", # required, accepts Pipe, File
hyper_parameters: {
"ParameterKey" => "ParameterValue",
},
input_data_config: [ # required
{
channel_name: "ChannelName", # required
data_source: { # required
s3_data_source: {
s3_data_type: "ManifestFile", # required, accepts ManifestFile, S3Prefix, AugmentedManifestFile
s3_uri: "S3Uri", # required
s3_data_distribution_type: "FullyReplicated", # accepts FullyReplicated, ShardedByS3Key
attribute_names: ["AttributeName"],
},
file_system_data_source: {
file_system_id: "FileSystemId", # required
file_system_access_mode: "rw", # required, accepts rw, ro
file_system_type: "EFS", # required, accepts EFS, FSxLustre
directory_path: "DirectoryPath", # required
},
},
content_type: "ContentType",
compression_type: "None", # accepts None, Gzip
record_wrapper_type: "None", # accepts None, RecordIO
input_mode: "Pipe", # accepts Pipe, File
shuffle_config: {
seed: 1, # required
},
},
],
output_data_config: { # required
kms_key_id: "KmsKeyId",
s3_output_path: "S3Uri", # required
},
resource_config: { # required
instance_type: "ml.m4.xlarge", # required, accepts ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.p3dn.24xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge
instance_count: 1, # required
volume_size_in_gb: 1, # required
volume_kms_key_id: "KmsKeyId",
},
stopping_condition: { # required
max_runtime_in_seconds: 1,
max_wait_time_in_seconds: 1,
},
},
transform_job_definition: {
max_concurrent_transforms: 1,
max_payload_in_mb: 1,
batch_strategy: "MultiRecord", # accepts MultiRecord, SingleRecord
environment: {
"TransformEnvironmentKey" => "TransformEnvironmentValue",
},
transform_input: { # required
data_source: { # required
s3_data_source: { # required
s3_data_type: "ManifestFile", # required, accepts ManifestFile, S3Prefix, AugmentedManifestFile
s3_uri: "S3Uri", # required
},
},
content_type: "ContentType",
compression_type: "None", # accepts None, Gzip
split_type: "None", # accepts None, Line, RecordIO, TFRecord
},
transform_output: { # required
s3_output_path: "S3Uri", # required
accept: "Accept",
assemble_with: "None", # accepts None, Line
kms_key_id: "KmsKeyId",
},
transform_resources: { # required
instance_type: "ml.m4.xlarge", # required, accepts ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge
instance_count: 1, # required
volume_kms_key_id: "KmsKeyId",
},
},
},
],
},
certify_for_marketplace: false,
})
Response structure
Response structure
resp.algorithm_arn #=> String
Parameters:
-
(defaults to: {})
({})
Options Hash (params):
-
:algorithm_name
(required, String)
—
The name of the algorithm.
-
:algorithm_description
(String)
—
A description of the algorithm.
-
:training_specification
(required, Types::TrainingSpecification)
—
Specifies details about training jobs run by this algorithm, including the following:
-
The Amazon ECR path of the container and the version digest of the algorithm.
-
The hyperparameters that the algorithm supports.
-
The instance types that the algorithm supports for training.
-
Whether the algorithm supports distributed training.
-
The metrics that the algorithm emits to Amazon CloudWatch.
-
Which metrics that the algorithm emits can be used as the objective metric for hyperparameter tuning jobs.
-
The input channels that the algorithm supports for training data. For example, an algorithm might support ‘train`, `validation`, and `test` channels.
-
-
:inference_specification
(Types::InferenceSpecification)
—
Specifies details about inference jobs that the algorithm runs, including the following:
-
The Amazon ECR paths of containers that contain the inference code and model artifacts.
-
The instance types that the algorithm supports for transform jobs and real-time endpoints used for inference.
-
The input and output content formats that the algorithm supports for inference.
-
-
:validation_specification
(Types::AlgorithmValidationSpecification)
—
Specifies configurations for one or more training jobs and that Amazon SageMaker runs to test the algorithm’s training code and, optionally, one or more batch transform jobs that Amazon SageMaker runs to test the algorithm’s inference code.
-
:certify_for_marketplace
(Boolean)
—
Whether to certify the algorithm so that it can be listed in AWS Marketplace.
Returns:
-
Returns a response object which responds to the following methods:
-
#algorithm_arn => String
-
See Also:
591 592 593 594 |
# File 'lib/aws-sdk-sagemaker/client.rb', line 591 def create_algorithm(params = {}, options = {}) req = build_request(:create_algorithm, params) req.send_request(options) end |