def forward(self, obs: Tensor) -> Tuple[Tensor, Tensor]:
        """
        **Overview**:
            The forward function of the RND network.
            It returns the target features and the predicted features.
        Arguments:
            - obs (:obj:`Tensor`): The input observation tensor.
        Returns:
            - target_feature (:obj:`Tensor`): The target feature tensor.
            - pred_feature (:obj:`Tensor`): The predicted feature tensor.
        """
        # The target network's forward pass is done with no gradients computed
        with torch.no_grad():
            target_feature = self.target_network(obs)
        # The predictor network's forward pass
        pred_feature = self.predictor_network(obs)
        return target_feature, pred_feature

        **Overview**:
            The forward function of the RND network.
            It returns the target features and the predicted features.
        Arguments:
            - obs (:obj:`Tensor`): The input observation tensor.
        Returns:
            - target_feature (:obj:`Tensor`): The target feature tensor.
            - pred_feature (:obj:`Tensor`): The predicted feature tensor.
        
chapter4_reward/curiosity_rnd.py