class_docstr: Get cropping heights and widths for ```crop``` transformation for resized crop transform.
  
  Args:
      output_size (Tuple[int, int]): expected output size of each edge.
      scale (Tensor): range of size of the origin size cropped with (2,) shape.
      ratio (Tensor): range of aspect ratio of the origin aspect ratio cropped with (2,) shape.
  
  Returns:
      params Dict[str, Tensor]: parameters to be passed for transformation.
          - size (Tensor): element-wise cropping sizes with a shape of (B, 2).
  
  Note:
      The generated random numbers are not reproducible across different devices and dtypes.
  
  Examples:
      >>> _ = torch.manual_seed(42)
      >>> rcg = ResizedCropGenerator((30, 30), scale=torch.tensor([.7, 1.3]), ratio=torch.tensor([.9, 1.]))
      >>> out = rcg(torch.Size([1, 3, 3]))
      >>> out["src"]
      tensor([[[0., 0.],
               [2., 0.],
               [2., 2.],
               [0., 2.]]])
      >>> out["dst"]
      tensor([[[ 0.,  0.],
               [29.,  0.],
               [29., 29.],
               [ 0., 29.]]])
      >>> out["input_size"]
      tensor([[3, 3]])
      >>> out["output_size"]
      tensor([[30, 30]])
class_docstr_tok: ["Get","cropping","heights","and","widths","for","``","`","crop","``","`","transformation","for","resized","crop","transform",".","Args",":","output_size","(","Tuple","[","int",",","int","]",")",":","expected","output","size","of","each","edge",".","scale","(","Tensor",")",":","range","of","size","of","the","origin","size","cropped","with","(","2",",",")","shape",".","ratio","(","Tensor",")",":","range","of","aspect","ratio","of","the","origin","aspect","ratio","cropped","with","(","2",",",")","shape",".","Returns",":","params","Dict","[","str",",","Tensor","]",":","parameters","to","be","passed","for","transformation",".","-","size","(","Tensor",")",":","element-wise","cropping","sizes","with","a","shape","of","(","B",",","2",")",".","Note",":","The","generated","random","numbers","are","not","reproducible","across","different","devices","and","dtypes",".","Examples",":",">",">",">","_","=","torch.manual_seed","(","42",")",">",">",">","rcg","=","ResizedCropGenerator","(","(","30",",","30",")",",","scale=torch.tensor","(","[",".7",",","1.3","]",")",",","ratio=torch.tensor","(","[",".9",",","1",".","]",")",")",">",">",">","out","=","rcg","(","torch.Size","(","[","1",",","3",",","3","]",")",")",">",">",">","out","[","``","src","''","]","tensor","(","[","[","[","0.",",","0",".","]",",","[","2.",",","0",".","]",",","[","2.",",","2",".","]",",","[","0.",",","2",".","]","]","]",")",">",">",">","out","[","``","dst","''","]","tensor","(","[","[","[","0.",",","0",".","]",",","[","29.",",","0",".","]",",","[","29.",",","29",".","]",",","[","0.",",","29",".","]","]","]",")",">",">",">","out","[","``","input_size","''","]","tensor","(","[","[","3",",","3","]","]",")",">",">",">","out","[","``","output_size","''","]","tensor","(","[","[","30",",","30","]","]",")"]
code: def make_samplers(
      self, device: torch.device, dtype: torch.dtype
  ) -> None:
      scale = torch.as_tensor(self.scale, device=device, dtype=dtype)
      ratio = torch.as_tensor(self.ratio, device=device, dtype=dtype)
      _joint_range_check(scale, "scale")
      _joint_range_check(ratio, "ratio")
      self.rand_sampler = Uniform(
          tensor(0.0, device=device, dtype=dtype),
          tensor(1.0, device=device, dtype=dtype),
      )
      self.log_ratio_sampler = Uniform(
          torch.log(ratio[0]), torch.log(ratio[1]), validate_args=False
      )
  
imports: from typing import Dict, Optional, Tuple, Union
  import torch
  from torch.distributions import Uniform
  from kornia.augmentation.random_generator.base import RandomGeneratorBase
  from kornia.augmentation.utils import _adapted_rsampling, _common_param_check, _joint_range_check
  from kornia.core import Device, Tensor, tensor, where, zeros
  from kornia.geometry.bbox import bbox_generator
  from kornia.utils.helpers import _extract_device_dtype
label_desc: Use image node_id 3 for calling the ResizedCropGenerator obj's underlying member method code with example usage: obj.make_samplers(device, dtype) without return types