class_docstr: Metropolis-Hastings SMC_kernel
docstr: Proposal dist is just a Multivariate Normal with unit identity covariance.
  Dimension specific scaling is provided by `self.proposal_scales` and set in `self.tune()`
docstr_tok: ["Proposal","dist","is","just","a","Multivariate","Normal","with","unit","identity","covariance",".","Dimension","specific","scaling","is","provided","by","`","self.proposal_scales","`","and","set","in","`","self.tune","(",")","`"]
code: def setup_kernel(self):
      """Proposal dist is just a Multivariate Normal with unit identity covariance.
      Dimension specific scaling is provided by `self.proposal_scales` and set in `self.tune()`
      """
      ndim = self.tempered_posterior.shape[1]
      self.proposal_scales = np.full(
          self.draws, min(1, 2.38**2 / ndim)
      )
  
imports: import abc
  import sys
  import warnings
  from abc import ABC
  from typing import Dict, Union, cast
  import numpy
  import pytensor.tensor
  from pytensor.graph.replace import clone_replace
  from scipy.special import logsumexp
  from scipy.stats import multivariate_normal
  from typing_extensions import TypeAlias
  from pymc.backends.ndarray import NDArray
  from pymc.blocking import DictToArrayBijection
  from pymc.initial_point import make_initial_point_expression
  from pymc.model import Point, modelcontext
  from pymc.pytensorf import compile_pymc, floatX, join_nonshared_inputs, make_shared_replacements
  from pymc.sampling.forward import draw
  from pymc.step_methods.metropolis import MultivariateNormalProposal
  from pymc.vartypes import discrete_types
label_desc: Use image node_id 2 for calling the MH obj's underlying member method code with example usage: obj.setup_kernel() without return types