class_docstr: This structure stores a list of boxes as a Nx4 torch.Tensor.
  It supports some common methods about boxes
  (`area`, `clip`, `nonempty`, etc),
  and also behaves like a Tensor
  (support indexing, `to(device)`, `.device`, and iteration over all boxes)
  
  Attributes:
      tensor (torch.Tensor): float matrix of Nx4. Each row is (x1, y1, x2, y2).
class_docstr_tok: ["This","structure","stores","a","list","of","boxes","as","a","Nx4","torch.Tensor",".","It","supports","some","common","methods","about","boxes","(","`","area","`",",","`","clip","`",",","`","nonempty","`",",","etc",")",",","and","also","behaves","like","a","Tensor","(","support","indexing",",","`","to","(","device",")","`",",","`",".device","`",",","and","iteration","over","all","boxes",")","Attributes",":","tensor","(","torch.Tensor",")",":","float","matrix","of","Nx4",".","Each","row","is","(","x1",",","y1",",","x2",",","y2",")","."]
docstr: Scale the box with horizontal and vertical scaling factors
docstr_tok: ["Scale","the","box","with","horizontal","and","vertical","scaling","factors"]
code: def scale(self, scale_x: float, scale_y: float) -> None:
      """
      Scale the box with horizontal and vertical scaling factors
      """
      # the following two statements are basically rescaling operations without inplace op:
      # self.tensor[:, 0::2] *= scale_x
      # self.tensor[:, 1::2] *= scale_y
      self.tensor = torch.stack(
          [
              self.tensor[:, 0] * scale_x,
              self.tensor[:, 1] * scale_y,
              self.tensor[:, 2] * scale_x,
              self.tensor[:, 3] * scale_y,
          ],
          axis=-1,
      )
  
imports: import math
  from enum import IntEnum, unique
  from typing import Any, List, Tuple, Union
  import numpy
  import torch
label_desc: Use image node_id 12 for calling the Boxes obj's underlying member method code with example usage: obj.scale(scale_x, scale_y) without return types