code: def hsv_to_rgb(image: torch.Tensor) -> torch.Tensor:
      r"""Convert an image from HSV to RGB.
  
      The H channel values are assumed to be in the range 0..2pi. S and V are in the range 0..1.
  
      Args:
          image: HSV Image to be converted to HSV with shape of :math:`(*, 3, H, W)`.
  
      Returns:
          RGB version of the image with shape of :math:`(*, 3, H, W)`.
  
      Example:
          >>> input = torch.rand(2, 3, 4, 5)
          >>> output = hsv_to_rgb(input)  # 2x3x4x5
      """
      if not isinstance(image, torch.Tensor):
          raise TypeError(
              f"Input type is not a torch.Tensor. Got {type(image)}"
          )
  
      if len(image.shape) < 3 or image.shape[-3] != 3:
          raise ValueError(
              f"Input size must have a shape of (*, 3, H, W). Got {image.shape}"
          )
  
      h: torch.Tensor = image[..., 0, :, :] / (2 * math.pi)
      s: torch.Tensor = image[..., 1, :, :]
      v: torch.Tensor = image[..., 2, :, :]
  
      hi: torch.Tensor = torch.floor(h * 6) % 6
      f: torch.Tensor = ((h * 6) % 6) - hi
      one: torch.Tensor = torch.tensor(
          1.0, device=image.device, dtype=image.dtype
      )
      p: torch.Tensor = v * (one - s)
      q: torch.Tensor = v * (one - f * s)
      t: torch.Tensor = v * (one - (one - f) * s)
  
      hi = hi.long()
      indices: torch.Tensor = torch.stack([hi, hi + 6, hi + 12], dim=-3)
      out = torch.stack(
          (v, q, p, p, t, v, t, v, v, q, p, p, p, p, t, v, v, q), dim=-3
      )
      out = torch.gather(out, -3, indices)
  
      return out
  
file_path: kornia/kornia/color/hsv.py
imports: import math
  import torch
  from torch import nn
label_desc: Use image node_id 2 for calling a global function with example usage: hsv_to_rgb(image) and returns: out