Exemple #1
0
    def __init__(
        self,
        observation_specs: List[ObservationSpec],
        h_size: int,
        vis_encode_type: EncoderType,
        normalize: bool = False,
    ):
        """
        Returns an ObservationEncoder that can process and encode a set of observations.
        Will use an RSA if needed for variable length observations.
        """
        super().__init__()
        self.processors, self.embedding_sizes = ModelUtils.create_input_processors(
            observation_specs, h_size, vis_encode_type, normalize=normalize
        )
        self.rsa, self.x_self_encoder = ModelUtils.create_residual_self_attention(
            self.processors, self.embedding_sizes, h_size
        )
        if self.rsa is not None:
            total_enc_size = sum(self.embedding_sizes) + h_size
        else:
            total_enc_size = sum(self.embedding_sizes)
        self.normalize = normalize
        self._total_enc_size = total_enc_size

        self._total_goal_enc_size = 0
        self._goal_processor_indices: List[int] = []
        for i in range(len(observation_specs)):
            if observation_specs[i].observation_type == ObservationType.GOAL_SIGNAL:
                self._total_goal_enc_size += self.embedding_sizes[i]
                self._goal_processor_indices.append(i)
Exemple #2
0
 def __init__(
     self,
     observation_specs: List[ObservationSpec],
     h_size: int,
     vis_encode_type: EncoderType,
     normalize: bool = False,
 ):
     """
     Returns an ObservationEncoder that can process and encode a set of observations.
     Will use an RSA if needed for variable length observations.
     """
     super().__init__()
     self.processors, self.embedding_sizes = ModelUtils.create_input_processors(
         observation_specs, h_size, vis_encode_type, normalize=normalize)
     self.rsa, self.x_self_encoder = ModelUtils.create_residual_self_attention(
         self.processors, self.embedding_sizes, h_size)
     if self.rsa is not None:
         total_enc_size = sum(self.embedding_sizes) + h_size
     else:
         total_enc_size = sum(self.embedding_sizes)
     self.normalize = normalize
     self._total_enc_size = total_enc_size