code: def __init__(
      self,
      min_sizes: List[List[int]],
      steps: List[int],
      clip: bool,
      image_size: Tuple[int, int],
  ) -> None:
      self.min_sizes = min_sizes
      self.steps = steps
      self.clip = clip
      self.image_size = image_size
  
      self.device: torch.device = torch.device("cpu")
      self.dtype: torch.dtype = torch.float32
  
      for i in range(4):
          if self.steps[i] != math.pow(2, (i + 3)):
              raise ValueError("steps must be [8,16,32,64]")
  
      self.feature_map_2th = [
          int(int((self.image_size[0] + 1) / 2) / 2),
          int(int((self.image_size[1] + 1) / 2) / 2),
      ]
      self.feature_map_3th = [
          int(self.feature_map_2th[0] / 2),
          int(self.feature_map_2th[1] / 2),
      ]
      self.feature_map_4th = [
          int(self.feature_map_3th[0] / 2),
          int(self.feature_map_3th[1] / 2),
      ]
      self.feature_map_5th = [
          int(self.feature_map_4th[0] / 2),
          int(self.feature_map_4th[1] / 2),
      ]
      self.feature_map_6th = [
          int(self.feature_map_5th[0] / 2),
          int(self.feature_map_5th[1] / 2),
      ]
  
      self.feature_maps = [
          self.feature_map_3th,
          self.feature_map_4th,
          self.feature_map_5th,
          self.feature_map_6th,
      ]
  
imports: import math
  from enum import Enum
  from typing import Dict, List, Optional, Tuple
  import torch
  import torch.nn.functional
  from torch import nn
  from kornia.geometry.bbox import nms
  from kornia.utils.helpers import map_location_to_cpu
label_desc: Use image node_id 1 to create a new _PriorBox object  with example: obj = _PriorBox(min_sizes, steps, clip, image_size)