code: def _gen_kernel_features_rbf(
      kernel: kernels.RBFKernel,
      *,
      num_inputs: int,
      num_outputs: int,
  ) -> KernelFeatureMap:
      def _weight_generator(shape: Size) -> Tensor:
          try:
              n, d = shape
          except ValueError:
              raise UnsupportedError(
                  f"Expected `shape` to be 2-dimensional, but {len(shape)=}."
              )
  
          return draw_sobol_normal_samples(
              n=n,
              d=d,
              device=kernel.lengthscale.device,
              dtype=kernel.lengthscale.dtype,
          )
  
      return _gen_fourier_features(
          kernel=kernel,
          weight_generator=_weight_generator,
          num_inputs=num_inputs,
          num_outputs=num_outputs,
      )
  
file_path: botorch/botorch/sampling/pathwise/features/generators.py
imports: from __future__ import annotations
  from typing import Any, Callable
  import torch
  from botorch.exceptions.errors import UnsupportedError
  from botorch.sampling.pathwise.features.maps import KernelFeatureMap
  from botorch.sampling.pathwise.utils import ChainedTransform, FeatureSelector, InverseLengthscaleTransform, OutputscaleTransform, SineCosineTransform
  from botorch.utils.dispatcher import Dispatcher
  from botorch.utils.sampling import draw_sobol_normal_samples
  from gpytorch import kernels
  from gpytorch.kernels.kernel import Kernel
  from torch import Size, Tensor
  from torch.distributions import Gamma
label_desc: Use image node_id 3 for calling a global function with example usage: _gen_kernel_features_rbf(kernel) and returns: _gen_fourier_features, draw_sobol_normal_samples