class_docstr: Generation strategy for HeSBO.
  
  Args:
      D: Dimensionality of high-dimensional space
      d: Dimensionality of low-dimensional space
      k: Number of random projections
      init_per_proj: Number of arms to use for random initialization of each
          of the k projections.
      name: Name of strategy
      dtype: torch dtype
      device: torch device
      gp_kwargs: kwargs sent along to the GP model
class_docstr_tok: ["Generation","strategy","for","HeSBO",".","Args",":","D",":","Dimensionality","of","high-dimensional","space","d",":","Dimensionality","of","low-dimensional","space","k",":","Number","of","random","projections","init_per_proj",":","Number","of","arms","to","use","for","random","initialization","of","each","of","the","k","projections",".","name",":","Name","of","strategy","dtype",":","torch","dtype","device",":","torch","device","gp_kwargs",":","kwargs","sent","along","to","the","GP","model"]
code: def __init__(
      self,
      D: int,
      d: int,
      init_per_proj: int,
      k: int = 1,
      name: str = "HeSBO",
      dtype: torch.dtype = torch.double,
      device: torch.device = DEFAULT_TORCH_DEVICE,
      gp_kwargs: Optional[Dict[str, Any]] = None,
  ) -> None:
      super().__init__(
          D=D,
          d=d,
          init_per_proj=init_per_proj,
          k=k,
          name=name,
          dtype=dtype,
          device=device,
          gp_kwargs=gp_kwargs,
      )
  
imports: import math
  from collections import defaultdict
  from typing import Any, Dict, List, Optional, Set, Tuple
  import numpy
  import torch
  from ax.core.data import Data
  from ax.core.experiment import Experiment
  from ax.core.generator_run import GeneratorRun
  from ax.core.search_space import SearchSpace
  from ax.modelbridge.factory import DEFAULT_TORCH_DEVICE
  from ax.modelbridge.generation_strategy import GenerationStep, GenerationStrategy
  from ax.modelbridge.random import RandomModelBridge
  from ax.modelbridge.torch import TorchModelBridge
  from ax.modelbridge.transforms.centered_unit_x import CenteredUnitX
  from ax.modelbridge.transforms.standardize_y import StandardizeY
  from ax.models.random.rembo_initializer import REMBOInitializer
  from ax.models.torch.rembo import REMBO
  from ax.utils.common.typeutils import not_none
label_desc: Use image node_id 1 to create a new HeSBOStrategy object from inherited base classes: REMBOStrategy with example: obj = HeSBOStrategy(D, d, init_per_proj, k, name, dtype, device, gp_kwargs)