code: def _f(self, X: np.ndarray) -> float:
      # TODO: support batch evaluation
      return float(self._botorch_function(X=torch.from_numpy(X)).item())
  
imports: from abc import ABC, abstractmethod
  from typing import Any, Callable, List, Optional, Tuple, Union
  import numpy
  import torch
  from ax.utils.common.docutils import copy_doc
  from ax.utils.common.typeutils import checked_cast, not_none
  from botorch.test_functions import synthetic
label_desc: Use image node_id 3 for calling the FromBotorch obj's underlying member method code with example usage: obj._f(X) and returns: float