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 __init__(
      self,
      output_size: Tuple[int, int],
      scale: Union[Tensor, Tuple[float, float]],
      ratio: Union[Tensor, Tuple[float, float]],
  ) -> None:
      if not (
          len(output_size) == 2
          and isinstance(output_size[0], (int,))
          and isinstance(output_size[1], (int,))
          and output_size[0] > 0
          and output_size[1] > 0
      ):
          raise AssertionError(
              f"`output_size` must be a tuple of 2 positive integers. Got {output_size}."
          )
      super().__init__(
          size=output_size, resize_to=output_size
      )  # fake an intermedia crop size
      self.scale = scale
      self.ratio = ratio
      self.output_size = output_size
  
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 1 to create a new ResizedCropGenerator object from inherited base classes: CropGenerator with example: obj = ResizedCropGenerator(output_size, scale, ratio)