code: def __init__(
      self,
      in_features: int,
      out_features: int,
      bias: bool = True,
      device=None,
      dtype=None,
      vector_wise_quantization: bool = False,
      mem_efficient: bool = False,
  ):
      super().__init__(in_features, out_features, bias, device, dtype)
  
      if not is_triton_available:
          raise ImportError(
              """Could not import triton. Please install triton to use SwitchBackLinear.
                                 Alternatively, you can use bnb.nn.SwitchBackLinearBnb, but it will be slower"""
          )
  
      # By default, we use the global quantization.
      self.vector_wise_quantization = vector_wise_quantization
      if self.vector_wise_quantization:
          self._fn = _switchback_vectorrize
          if mem_efficient:
              print(
                  "mem efficient is not supported for vector-wise quantization."
              )
              exit(1)
      else:
          if mem_efficient:
              self._fn = _switchback_global_mem_efficient
          else:
              self._fn = _switchback_global
  
imports: import torch
  import torch.nn
  import time
  from functools import partial
  from bitsandbytes.triton.triton_utils import is_triton_available
  from bitsandbytes.triton.dequantize_rowwise import dequantize_rowwise
  from bitsandbytes.triton.quantize_rowwise import quantize_rowwise
  from bitsandbytes.triton.quantize_columnwise_and_transpose import quantize_columnwise_and_transpose
  from bitsandbytes.triton.int8_matmul_rowwise_dequantize import int8_matmul_rowwise_dequantize
  from bitsandbytes.triton.quantize_global import quantize_global, quantize_global_transpose
  from bitsandbytes.triton.int8_matmul_mixed_dequantize import int8_matmul_mixed_dequantize
label_desc: Use image node_id 1 to create a new SwitchBackLinear object from inherited base classes: nn with example: obj = SwitchBackLinear(in_features, out_features, bias, device, dtype, vector_wise_quantization, mem_efficient)