Class: Google::Apis::AiplatformV1::GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/aiplatform_v1/classes.rb,
lib/google/apis/aiplatform_v1/representations.rb,
lib/google/apis/aiplatform_v1/representations.rb

Overview

Configuration for ConvexAutomatedStoppingSpec. When there are enough completed trials (configured by min_measurement_count), for pending trials with enough measurements and steps, the policy first computes an overestimate of the objective value at max_num_steps according to the slope of the incomplete objective value curve. No prediction can be made if the curve is completely flat. If the overestimation is worse than the best objective value of the completed trials, this pending trial will be early-stopped, but a last measurement will be added to the pending trial with max_num_steps and predicted objective value from the autoregression model.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec

Returns a new instance of GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec.



25167
25168
25169
# File 'lib/google/apis/aiplatform_v1/classes.rb', line 25167

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#learning_rate_parameter_nameString

The hyper-parameter name used in the tuning job that stands for learning rate. Leave it blank if learning rate is not in a parameter in tuning. The learning_rate is used to estimate the objective value of the ongoing trial. Corresponds to the JSON property learningRateParameterName

Returns:

  • (String)


25117
25118
25119
# File 'lib/google/apis/aiplatform_v1/classes.rb', line 25117

def learning_rate_parameter_name
  @learning_rate_parameter_name
end

#max_step_countFixnum

Steps used in predicting the final objective for early stopped trials. In general, it's set to be the same as the defined steps in training / tuning. If not defined, it will learn it from the completed trials. When use_steps is false, this field is set to the maximum elapsed seconds. Corresponds to the JSON property maxStepCount

Returns:

  • (Fixnum)


25125
25126
25127
# File 'lib/google/apis/aiplatform_v1/classes.rb', line 25125

def max_step_count
  @max_step_count
end

#min_measurement_countFixnum

The minimal number of measurements in a Trial. Early-stopping checks will not trigger if less than min_measurement_count+1 completed trials or pending trials with less than min_measurement_count measurements. If not defined, the default value is 5. Corresponds to the JSON property minMeasurementCount

Returns:

  • (Fixnum)


25133
25134
25135
# File 'lib/google/apis/aiplatform_v1/classes.rb', line 25133

def min_measurement_count
  @min_measurement_count
end

#min_step_countFixnum

Minimum number of steps for a trial to complete. Trials which do not have a measurement with step_count > min_step_count won't be considered for early stopping. It's ok to set it to 0, and a trial can be early stopped at any stage. By default, min_step_count is set to be one-tenth of the max_step_count. When use_elapsed_duration is true, this field is set to the minimum elapsed seconds. Corresponds to the JSON property minStepCount

Returns:

  • (Fixnum)


25143
25144
25145
# File 'lib/google/apis/aiplatform_v1/classes.rb', line 25143

def min_step_count
  @min_step_count
end

#update_all_stopped_trialsBoolean Also known as: update_all_stopped_trials?

ConvexAutomatedStoppingSpec by default only updates the trials that needs to be early stopped using a newly trained auto-regressive model. When this flag is set to True, all stopped trials from the beginning are potentially updated in terms of their final_measurement. Also, note that the training logic of autoregressive models is different in this case. Enabling this option has shown better results and this may be the default option in the future. Corresponds to the JSON property updateAllStoppedTrials

Returns:

  • (Boolean)


25153
25154
25155
# File 'lib/google/apis/aiplatform_v1/classes.rb', line 25153

def update_all_stopped_trials
  @update_all_stopped_trials
end

#use_elapsed_durationBoolean Also known as: use_elapsed_duration?

This bool determines whether or not the rule is applied based on elapsed_secs or steps. If use_elapsed_duration==false, the early stopping decision is made according to the predicted objective values according to the target steps. If use_elapsed_duration==true, elapsed_secs is used instead of steps. Also, in this case, the parameters max_num_steps and min_num_steps are overloaded to contain max_elapsed_seconds and min_elapsed_seconds. Corresponds to the JSON property useElapsedDuration

Returns:

  • (Boolean)


25164
25165
25166
# File 'lib/google/apis/aiplatform_v1/classes.rb', line 25164

def use_elapsed_duration
  @use_elapsed_duration
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



25172
25173
25174
25175
25176
25177
25178
25179
# File 'lib/google/apis/aiplatform_v1/classes.rb', line 25172

def update!(**args)
  @learning_rate_parameter_name = args[:learning_rate_parameter_name] if args.key?(:learning_rate_parameter_name)
  @max_step_count = args[:max_step_count] if args.key?(:max_step_count)
  @min_measurement_count = args[:min_measurement_count] if args.key?(:min_measurement_count)
  @min_step_count = args[:min_step_count] if args.key?(:min_step_count)
  @update_all_stopped_trials = args[:update_all_stopped_trials] if args.key?(:update_all_stopped_trials)
  @use_elapsed_duration = args[:use_elapsed_duration] if args.key?(:use_elapsed_duration)
end