class_docstr: Scale the tensor by a factor.
  
  Args:
      scale_factor: The scale factor apply. The tensor
        must have a shape of (B) or (B, 2), where B is batch size.
        If (B), isotropic scaling will perform.
        If (B, 2), x-y-direction specific scaling will perform.
      center: The center through which to scale. The tensor
        must have a shape of (B, 2), where B is batch size and last
        dimension contains cx and cy.
      mode: interpolation mode to calculate output values
        ``'bilinear'`` | ``'nearest'``.
      padding_mode: padding mode for outside grid values
        ``'zeros'`` | ``'border'`` | ``'reflection'``.
      align_corners: interpolation flag.
  
  Returns:
      The scaled tensor with the same shape as the input.
  
  Example:
      >>> img = torch.rand(1, 3, 4, 4)
      >>> scale_factor = torch.tensor([[2., 2.]])
      >>> out = Scale(scale_factor)(img)
      >>> print(out.shape)
      torch.Size([1, 3, 4, 4])
class_docstr_tok: ["Scale","the","tensor","by","a","factor",".","Args",":","scale_factor",":","The","scale","factor","apply",".","The","tensor","must","have","a","shape","of","(","B",")","or","(","B",",","2",")",",","where","B","is","batch","size",".","If","(","B",")",",","isotropic","scaling","will","perform",".","If","(","B",",","2",")",",","x-y-direction","specific","scaling","will","perform",".","center",":","The","center","through","which","to","scale",".","The","tensor","must","have","a","shape","of","(","B",",","2",")",",","where","B","is","batch","size","and","last","dimension","contains","cx","and","cy",".","mode",":","interpolation","mode","to","calculate","output","values","``","'bilinear","'","``","|","``","'nearest","'","``",".","padding_mode",":","padding","mode","for","outside","grid","values","``","'zeros","'","``","|","``","'border","'","``","|","``","'reflection","'","``",".","align_corners",":","interpolation","flag",".","Returns",":","The","scaled","tensor","with","the","same","shape","as","the","input",".","Example",":",">",">",">","img","=","torch.rand","(","1",",","3",",","4",",","4",")",">",">",">","scale_factor","=","torch.tensor","(","[","[","2.",",","2",".","]","]",")",">",">",">","out","=","Scale","(","scale_factor",")","(","img",")",">",">",">","print","(","out.shape",")","torch.Size","(","[","1",",","3",",","4",",","4","]",")"]
code: def __init__(
      self,
      scale_factor: torch.Tensor,
      center: Union[None, torch.Tensor] = None,
      mode: str = "bilinear",
      padding_mode: str = "zeros",
      align_corners: bool = True,
  ) -> None:
      super().__init__()
      self.scale_factor: torch.Tensor = scale_factor
      self.center: Union[None, torch.Tensor] = center
      self.mode: str = mode
      self.padding_mode: str = padding_mode
      self.align_corners: bool = align_corners
  
imports: from typing import Optional, Tuple, Union
  import torch
  from torch import nn
  from kornia.core import ones, ones_like, zeros
  from kornia.filters import gaussian_blur2d
  from kornia.utils import _extract_device_dtype
  from kornia.utils.image import perform_keep_shape_image
  from kornia.utils.misc import eye_like
  from .imgwarp import get_affine_matrix2d, get_projective_transform, get_rotation_matrix2d, warp_affine, warp_affine3d
label_desc: Use image node_id 1 to create a new Scale object from inherited base classes: nn with example: obj = Scale(scale_factor, center, mode, padding_mode, align_corners)