def external_brains(): result = {} for behavior_name, behavior_specs in env.behavior_specs.items(): result[behavior_name] = behavior_spec_to_brain_parameters( behavior_name, behavior_specs ) return result
def demo_to_buffer( file_path: str, sequence_length: int) -> Tuple[BrainParameters, AgentBuffer]: """ Loads demonstration file and uses it to fill training buffer. :param file_path: Location of demonstration file (.demo). :param sequence_length: Length of trajectories to fill buffer. :return: """ behavior_spec, info_action_pair, _ = load_demonstration(file_path) demo_buffer = make_demo_buffer(info_action_pair, behavior_spec, sequence_length) brain_params = behavior_spec_to_brain_parameters("DemoBrain", behavior_spec) return brain_params, demo_buffer
def external_brains(): result = {} for brain_name in env.get_behavior_names(): result[brain_name] = behavior_spec_to_brain_parameters( brain_name, env.get_behavior_spec(brain_name)) return result
def external_brains(self) -> Dict[BehaviorName, BrainParameters]: result = {} for brain_name in self.env.get_behavior_names(): result[brain_name] = behavior_spec_to_brain_parameters( brain_name, self.env.get_behavior_spec(brain_name)) return result
def demo_to_buffer( file_path: str, sequence_length: int, expected_brain_params: BrainParameters = None ) -> Tuple[BrainParameters, AgentBuffer]: """ Loads demonstration file and uses it to fill training buffer. :param file_path: Location of demonstration file (.demo). :param sequence_length: Length of trajectories to fill buffer. :return: """ behavior_spec, info_action_pair, _ = load_demonstration(file_path) demo_buffer = make_demo_buffer(info_action_pair, behavior_spec, sequence_length) brain_params = behavior_spec_to_brain_parameters("DemoBrain", behavior_spec) if expected_brain_params: # check action dimensions in demonstration match if ( brain_params.vector_action_space_size != expected_brain_params.vector_action_space_size ): raise RuntimeError( "The action dimensions {} in demonstration do not match the policy's {}.".format( brain_params.vector_action_space_size, expected_brain_params.vector_action_space_size, ) ) # check the action types in demonstration match if ( brain_params.vector_action_space_type != expected_brain_params.vector_action_space_type ): raise RuntimeError( "The action type of {} in demonstration do not match the policy's {}.".format( brain_params.vector_action_space_type, expected_brain_params.vector_action_space_type, ) ) # check number of vector observations in demonstration match if ( brain_params.vector_observation_space_size != expected_brain_params.vector_observation_space_size ): raise RuntimeError( "The vector observation dimensions of {} in demonstration do not match the policy's {}.".format( brain_params.vector_observation_space_size, expected_brain_params.vector_observation_space_size, ) ) # check number of visual observations/resolutions in demonstration match if ( brain_params.number_visual_observations != expected_brain_params.number_visual_observations ): raise RuntimeError( "Number of visual observations {} in demonstrations do not match the policy's {}.".format( brain_params.number_visual_observations, expected_brain_params.number_visual_observations, ) ) for i, (resolution, expected_resolution) in enumerate( zip( brain_params.camera_resolutions, expected_brain_params.camera_resolutions, ) ): if resolution != expected_resolution: raise RuntimeError( "The resolution of visual observation {} in demonstrations do not match the policy's.".format( i ) ) return brain_params, demo_buffer
def external_brains(self) -> Dict[BehaviorName, BrainParameters]: result = {} for behavior_name, behavior_spec in self.env.behavior_specs.items(): result[behavior_name] = behavior_spec_to_brain_parameters( behavior_name, behavior_spec) return result