Struct entity_gym_rs::agent::Obs
source · [−]pub struct Obs { /* private fields */ }
Expand description
An observation that defines what an agent can see.
The Obs::new
method creates an observation.
It takes a single required parameter, the current score, which is maximized during training.
use entity_gym_rs::agent::Obs;
let obs = Obs::new(0.0);
An observation can contain any number of Featurizable
entities.
use entity_gym_rs::agent::{Obs, Featurizable};
#[derive(Featurizable)]
struct Player { x: i32, y: i32 }
#[derive(Featurizable)]
struct Cake { is_a_lie: bool }
let obs = Obs::new(0.0)
.entities([Player { x: 0, y: -3 }])
.entities([Cake { is_a_lie: true }, Cake { is_a_lie: false }]);
Implementations
sourceimpl Obs
impl Obs
sourcepub fn new(score: f32) -> Self
pub fn new(score: f32) -> Self
Creates a new observation.
Arguments
score
- The current score of the agent. This is maximized during training.
sourcepub fn entities<E: Featurizable, I: IntoIterator<Item = E>>(
self,
entities: I
) -> Self
pub fn entities<E: Featurizable, I: IntoIterator<Item = E>>(
self,
entities: I
) -> Self
Adds a set of entities to the observation.
Arguments
entities
- An iterator ofFeaturizable
entities to add to the observation.
sourcepub fn metric(self, name: &str, value: f32) -> Self
pub fn metric(self, name: &str, value: f32) -> Self
Adds a numerical metric to the observation. Aggregate statistics of all metrics are surfaced during training.
Arguments
name
- The name of the metric.value
- The value of the metric.
Example
use entity_gym_rs::agent::Obs;
let mut obs = Obs::new(0.0)
.metric("experience-collected", 2132.4)
.metric("game-over-reason/touched-enemy", 1.0);
Auto Trait Implementations
impl RefUnwindSafe for Obs
impl Send for Obs
impl Sync for Obs
impl Unpin for Obs
impl UnwindSafe for Obs
Blanket Implementations
impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
Return the
T
[ShaderType
] for self
. When used in [AsBindGroup
]
derives, it is safe to assume that all images in self
exist. Read moresourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read morefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read morefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read morefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read moresourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read morefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.