Struct google_api_proto::google::cloud::aiplatform::v1::study_spec::ConvexAutomatedStoppingSpec
source · pub struct ConvexAutomatedStoppingSpec {
pub max_step_count: i64,
pub min_step_count: i64,
pub min_measurement_count: i64,
pub learning_rate_parameter_name: String,
pub use_elapsed_duration: bool,
pub update_all_stopped_trials: Option<bool>,
}
Expand description
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.
Fields§
§max_step_count: i64
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.
min_step_count: i64
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.
min_measurement_count: i64
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.
learning_rate_parameter_name: String
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.
use_elapsed_duration: bool
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.
update_all_stopped_trials: Option<bool>
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.
Implementations§
source§impl ConvexAutomatedStoppingSpec
impl ConvexAutomatedStoppingSpec
sourcepub fn update_all_stopped_trials(&self) -> bool
pub fn update_all_stopped_trials(&self) -> bool
Returns the value of update_all_stopped_trials
, or the default value if update_all_stopped_trials
is unset.
Trait Implementations§
source§impl Clone for ConvexAutomatedStoppingSpec
impl Clone for ConvexAutomatedStoppingSpec
source§fn clone(&self) -> ConvexAutomatedStoppingSpec
fn clone(&self) -> ConvexAutomatedStoppingSpec
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ConvexAutomatedStoppingSpec
impl Debug for ConvexAutomatedStoppingSpec
source§impl Message for ConvexAutomatedStoppingSpec
impl Message for ConvexAutomatedStoppingSpec
source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moresource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.source§impl PartialEq for ConvexAutomatedStoppingSpec
impl PartialEq for ConvexAutomatedStoppingSpec
source§fn eq(&self, other: &ConvexAutomatedStoppingSpec) -> bool
fn eq(&self, other: &ConvexAutomatedStoppingSpec) -> bool
self
and other
values to be equal, and is used
by ==
.impl StructuralPartialEq for ConvexAutomatedStoppingSpec
Auto Trait Implementations§
impl Freeze for ConvexAutomatedStoppingSpec
impl RefUnwindSafe for ConvexAutomatedStoppingSpec
impl Send for ConvexAutomatedStoppingSpec
impl Sync for ConvexAutomatedStoppingSpec
impl Unpin for ConvexAutomatedStoppingSpec
impl UnwindSafe for ConvexAutomatedStoppingSpec
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request