def compute_rnd_intrinsic_reward(self, obs: Tensor) -> Tensor:
        """
        **Overview**:
            Given the input observation tensor, the RND model will compute the target and predicted features,
            and return the squared difference between them as the intrinsic reward.
        Arguments:
            - obs (:obj:`Tensor`): The input observation tensor.
        Returns:
            - rnd_reward (:obj:`Tensor`): The RND intrinsic reward tensor.
        """
        # The intrinsic reward is the squared difference between the target and predicted features
        target_feature, pred_feature = self.forward(obs)
        rnd_reward = (target_feature - pred_feature).pow(2).sum(dim=1)
        return rnd_reward

        **Overview**:
            Given the input observation tensor, the RND model will compute the target and predicted features,
            and return the squared difference between them as the intrinsic reward.
        Arguments:
            - obs (:obj:`Tensor`): The input observation tensor.
        Returns:
            - rnd_reward (:obj:`Tensor`): The RND intrinsic reward tensor.
        
chapter4_reward/curiosity_rnd.py