pub struct JobDefinition {Show 29 fields
pub name: String,
pub description: Option<String>,
pub flow_type: FlowType,
pub env_name: Option<String>,
pub task_name: Option<String>,
pub algorithm: Option<String>,
pub policy: Option<String>,
pub seed: Option<i64>,
pub environment_map: Option<String>,
pub total_timesteps: Option<i64>,
pub learning_rate: Option<f64>,
pub linear_lr_schedule: Option<bool>,
pub n_steps: Option<i64>,
pub batch_size: Option<i64>,
pub n_epochs: Option<i64>,
pub gamma: Option<f64>,
pub gae_lambda: Option<f64>,
pub clip_range: Option<f64>,
pub ent_coef: Option<f64>,
pub vf_coef: Option<f64>,
pub max_grad_norm: Option<f64>,
pub patience: Option<i64>,
pub min_delta: Option<f64>,
pub n_envs: Option<i64>,
pub n_trials: Option<i64>,
pub tune_timesteps: Option<i64>,
pub eval_eps: Option<i64>,
pub search_space: Option<Vec<SearchSpaceEntry>>,
pub source_path: PathBuf,
}Expand description
A training job definition, loaded from configs/rl/jobs/<name>.yml.
Fields§
§name: String§description: Option<String>§flow_type: FlowType§env_name: Option<String>Name of the simulation environment to train in. If omitted, it’s resolved from the selected task.
task_name: Option<String>Name of the task/curriculum to train on, selected from the project’s task catalog.
algorithm: Option<String>Name of the reinforcement learning algorithm to use for this job.
policy: Option<String>Name of the policy network architecture to use. If omitted, it’s auto-detected from the environment.
seed: Option<i64>§environment_map: Option<String>§total_timesteps: Option<i64>§learning_rate: Option<f64>§linear_lr_schedule: Option<bool>§n_steps: Option<i64>§batch_size: Option<i64>§n_epochs: Option<i64>§gamma: Option<f64>§gae_lambda: Option<f64>§clip_range: Option<f64>§ent_coef: Option<f64>§vf_coef: Option<f64>§max_grad_norm: Option<f64>§patience: Option<i64>Number of evaluations with no improvement to wait before stopping training early.
min_delta: Option<f64>§n_envs: Option<i64>Number of parallel environments to run during training.
n_trials: Option<i64>§tune_timesteps: Option<i64>§eval_eps: Option<i64>§search_space: Option<Vec<SearchSpaceEntry>>Hyperparameter search space to explore for a tuning job. If omitted, a default search space is used.
source_path: PathBufImplementations§
Source§impl JobDefinition
impl JobDefinition
Sourcepub fn validate(
&self,
project_root: &Path,
resume_run_id: Option<&str>,
) -> Result<()>
pub fn validate( &self, project_root: &Path, resume_run_id: Option<&str>, ) -> Result<()>
Validate this job against mecha10-job-validation’s flow_type requirement table, plus a
task_name-exists check against the project’s own task catalog.
Sourcepub fn resolve_env_name(&self, project_root: &Path) -> Option<String>
pub fn resolve_env_name(&self, project_root: &Path) -> Option<String>
Resolve which mecha10_rl.envs registry name this job targets: an explicit env_name
wins, else it’s read from task_name’s own task.json. None when neither is available.
Sourcepub fn supports_remote(&self) -> bool
pub fn supports_remote(&self) -> bool
Whether this job can be dispatched remotely with today’s CreateJobRequest/create_job
contract. tune-then-train/train-from-tune aren’t dispatchable yet and stay local-only.
Sourcepub fn to_create_job_request(
&self,
project_root: &Path,
robot_id: &str,
project_name: &str,
resume_run_id: Option<&str>,
) -> Result<CreateJobRequest>
pub fn to_create_job_request( &self, project_root: &Path, robot_id: &str, project_name: &str, resume_run_id: Option<&str>, ) -> Result<CreateJobRequest>
Build the remote dispatch request body. Only meaningful when supports_remote() is true;
callers should check that first.
Trait Implementations§
Source§impl Clone for JobDefinition
impl Clone for JobDefinition
Source§impl Debug for JobDefinition
impl Debug for JobDefinition
Source§impl<'de> Deserialize<'de> for JobDefinition
impl<'de> Deserialize<'de> for JobDefinition
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for JobDefinition
impl JsonSchema for JobDefinition
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for JobDefinition
impl RefUnwindSafe for JobDefinition
impl Send for JobDefinition
impl Sync for JobDefinition
impl Unpin for JobDefinition
impl UnsafeUnpin for JobDefinition
impl UnwindSafe for JobDefinition
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more