docstr: Create sinusoidal timestep embeddings.
  
  :param timesteps: a 1-D Tensor of N indices, one per batch element.
                  These may be fractional.
  :param dim: the dimension of the output.
  :param max_period: controls the minimum frequency of the embeddings.
  :return: an [N x dim] Tensor of positional embeddings.
docstr_tok: ["Create","sinusoidal","timestep","embeddings",".",":","param","timesteps",":","a","1-D","Tensor","of","N","indices",",","one","per","batch","element",".","These","may","be","fractional",".",":","param","dim",":","the","dimension","of","the","output",".",":","param","max_period",":","controls","the","minimum","frequency","of","the","embeddings",".",":","return",":","an","[","N","x","dim","]","Tensor","of","positional","embeddings","."]
code: def __init__(self, dim, max_period=10000):
      """
      Create sinusoidal timestep embeddings.
  
      :param timesteps: a 1-D Tensor of N indices, one per batch element.
                      These may be fractional.
      :param dim: the dimension of the output.
      :param max_period: controls the minimum frequency of the embeddings.
      :return: an [N x dim] Tensor of positional embeddings.
      """
      super().__init__()
      self.dim = dim
      self.max_period = max_period
      print(
          f"Unlearned Timestep Embedding Schedule: dim={dim}, max_period={max_period}"
      )
  
file_path: NeMo/nemo/collections/multimodal/modules/imagen/diffusionmodules/embs.py
imports: import math
  import torch
  import torch.nn
  from einops import rearrange
label_desc: Use image node_id 1 to create a new UnLearnedSinusoidalPosEmb object from inherited base classes: nn with example: obj = UnLearnedSinusoidalPosEmb(dim, max_period)