Use CreateTrainingJob with an AWS SDK - AWS SDK Code Examples

There are more AWS SDK examples available in the AWS Doc SDK Examples GitHub repo.

Use CreateTrainingJob with an AWS SDK

The following code example shows how to use CreateTrainingJob.

Action examples are code excerpts from larger programs and must be run in context. You can see this action in context in the following code example:

SAP ABAP
SDK for SAP ABAP
Note

There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

DATA lo_hyperparameters_w TYPE REF TO /aws1/cl_sgmhyperparameters_w. DATA lt_hyperparameters TYPE /aws1/cl_sgmhyperparameters_w=>tt_hyperparameters. DATA lt_input_data_config TYPE /aws1/cl_sgmchannel=>tt_inputdataconfig. DATA lo_trn_channel TYPE REF TO /aws1/cl_sgmchannel. DATA lo_trn_datasource TYPE REF TO /aws1/cl_sgmdatasource. DATA lo_trn_s3datasource TYPE REF TO /aws1/cl_sgms3datasource. DATA lo_val_channel TYPE REF TO /aws1/cl_sgmchannel. DATA lo_val_datasource TYPE REF TO /aws1/cl_sgmdatasource. DATA lo_val_s3datasource TYPE REF TO /aws1/cl_sgms3datasource. DATA lo_algorithm_specification TYPE REF TO /aws1/cl_sgmalgorithmspec. DATA lo_resource_config TYPE REF TO /aws1/cl_sgmresourceconfig. DATA lo_output_data_config TYPE REF TO /aws1/cl_sgmoutputdataconfig. DATA lo_stopping_condition TYPE REF TO /aws1/cl_sgmstoppingcondition. "Create ABAP internal table for hyperparameters based on input variables." "These hyperparameters are based on the Amazon SageMaker built-in algorithm, XGBoost." CREATE OBJECT lo_hyperparameters_w EXPORTING iv_value = iv_hp_max_depth. INSERT VALUE #( key = 'max_depth' value = lo_hyperparameters_w ) INTO TABLE lt_hyperparameters. CREATE OBJECT lo_hyperparameters_w EXPORTING iv_value = iv_hp_eta. INSERT VALUE #( key = 'eta' value = lo_hyperparameters_w ) INTO TABLE lt_hyperparameters. CREATE OBJECT lo_hyperparameters_w EXPORTING iv_value = iv_hp_eval_metric. INSERT VALUE #( key = 'eval_metric' value = lo_hyperparameters_w ) INTO TABLE lt_hyperparameters. CREATE OBJECT lo_hyperparameters_w EXPORTING iv_value = iv_hp_scale_pos_weight. INSERT VALUE #( key = 'scale_pos_weight' value = lo_hyperparameters_w ) INTO TABLE lt_hyperparameters. CREATE OBJECT lo_hyperparameters_w EXPORTING iv_value = iv_hp_subsample. INSERT VALUE #( key = 'subsample' value = lo_hyperparameters_w ) INTO TABLE lt_hyperparameters. CREATE OBJECT lo_hyperparameters_w EXPORTING iv_value = iv_hp_objective. INSERT VALUE #( key = 'objective' value = lo_hyperparameters_w ) INTO TABLE lt_hyperparameters. CREATE OBJECT lo_hyperparameters_w EXPORTING iv_value = iv_hp_num_round. INSERT VALUE #( key = 'num_round' value = lo_hyperparameters_w ) INTO TABLE lt_hyperparameters. "Create ABAP objects for training data sources." CREATE OBJECT lo_trn_s3datasource EXPORTING iv_s3datatype = iv_trn_data_s3datatype iv_s3datadistributiontype = iv_trn_data_s3datadistribution iv_s3uri = iv_trn_data_s3uri. CREATE OBJECT lo_trn_datasource EXPORTING io_s3datasource = lo_trn_s3datasource. CREATE OBJECT lo_trn_channel EXPORTING iv_channelname = 'train' io_datasource = lo_trn_datasource iv_compressiontype = iv_trn_data_compressiontype iv_contenttype = iv_trn_data_contenttype. INSERT lo_trn_channel INTO TABLE lt_input_data_config. "Create ABAP objects for validation data sources." CREATE OBJECT lo_val_s3datasource EXPORTING iv_s3datatype = iv_val_data_s3datatype iv_s3datadistributiontype = iv_val_data_s3datadistribution iv_s3uri = iv_val_data_s3uri. CREATE OBJECT lo_val_datasource EXPORTING io_s3datasource = lo_val_s3datasource. CREATE OBJECT lo_val_channel EXPORTING iv_channelname = 'validation' io_datasource = lo_val_datasource iv_compressiontype = iv_val_data_compressiontype iv_contenttype = iv_val_data_contenttype. INSERT lo_val_channel INTO TABLE lt_input_data_config. "Create an ABAP object for algorithm specification." CREATE OBJECT lo_algorithm_specification EXPORTING iv_trainingimage = iv_training_image iv_traininginputmode = iv_training_input_mode. "Create an ABAP object for resource configuration." CREATE OBJECT lo_resource_config EXPORTING iv_instancecount = iv_instance_count iv_instancetype = iv_instance_type iv_volumesizeingb = iv_volume_sizeingb. "Create an ABAP object for output data configuration." CREATE OBJECT lo_output_data_config EXPORTING iv_s3outputpath = iv_s3_output_path. "Create an ABAP object for stopping condition." CREATE OBJECT lo_stopping_condition EXPORTING iv_maxruntimeinseconds = iv_max_runtime_in_seconds. "Create a training job." TRY. oo_result = lo_sgm->createtrainingjob( " oo_result is returned for testing purposes. " iv_trainingjobname = iv_training_job_name iv_rolearn = iv_role_arn it_hyperparameters = lt_hyperparameters it_inputdataconfig = lt_input_data_config io_algorithmspecification = lo_algorithm_specification io_outputdataconfig = lo_output_data_config io_resourceconfig = lo_resource_config io_stoppingcondition = lo_stopping_condition ). MESSAGE 'Training job created.' TYPE 'I'. CATCH /aws1/cx_sgmresourceinuse. MESSAGE 'Resource being accessed is in use.' TYPE 'E'. CATCH /aws1/cx_sgmresourcenotfound. MESSAGE 'Resource being accessed is not found.' TYPE 'E'. CATCH /aws1/cx_sgmresourcelimitexcd. MESSAGE 'You have reached the limit on the number of resources.' TYPE 'E'. ENDTRY.