def reset_patch(self, initial_patch_value: float | np.ndarray | None = None) -> None:
        """
        Reset the adversarial patch.

        :param initial_patch_value: Patch value to use for resetting the patch.
        """
        if initial_patch_value is None:
            self._patch.assign(self._initial_value)
        elif isinstance(initial_patch_value, float):
            initial_value = np.ones(self.patch_shape) * initial_patch_value
            self._patch.assign(initial_value)
        elif self._patch.shape == initial_patch_value.shape:
            self._patch.assign(initial_patch_value)
        else:  # pragma: no cover
            raise ValueError("Unexpected value for initial_patch_value.")

        Reset the adversarial patch.

        :param initial_patch_value: Patch value to use for resetting the patch.
        
art/attacks/evasion/adversarial_patch/adversarial_patch_tensorflow.py