code: def _apply(self, fn):
      self.lower_bound = fn(self.lower_bound)
      self.upper_bound = fn(self.upper_bound)
      return super()._apply(fn)
  
imports: from __future__ import annotations
  import math
  from typing import Optional
  import torch
  from torch import sigmoid, Tensor
  from torch.nn import Module
  from ..utils.transforms import _get_inv_param_transform, inv_sigmoid, inv_softplus
label_desc: Use image node_id 2 for calling the Interval obj's underlying member method code with example usage: obj._apply(fn) and returns: super