class_docstr: Base class to represent the Se2 group.
  
  The SE(2) is the group of rigid body transformations about the origin of two-dimensional Euclidean
  space :math:`R^2` under the operation of composition.
  See more:
  
  Example:
      >>> so2 = So2.identity(1)
      >>> t = torch.ones((1, 2))
      >>> se2 = Se2(so2, t)
      >>> se2
      rotation: Parameter containing:
      tensor([1.+0.j], requires_grad=True)
      translation: Parameter containing:
      tensor([[1., 1.]], requires_grad=True)
class_docstr_tok: ["Base","class","to","represent","the","Se2","group",".","The","SE","(","2",")","is","the","group","of","rigid","body","transformations","about","the","origin","of","two-dimensional","Euclidean","space",":","math",":","`","R^2","`","under","the","operation","of","composition",".","See","more",":","Example",":",">",">",">","so2","=","So2.identity","(","1",")",">",">",">","t","=","torch.ones","(","(","1",",","2",")",")",">",">",">","se2","=","Se2","(","so2",",","t",")",">",">",">","se2","rotation",":","Parameter","containing",":","tensor","(","[","1.+0.j","]",",","requires_grad=True",")","translation",":","Parameter","containing",":","tensor","(","[","[","1.",",","1",".","]","]",",","requires_grad=True",")"]
docstr: Create a Se2 group representing an identity rotation and zero translation.
  
  Args:
      batch_size: the batch size of the underlying data.
  
  Example:
      >>> s = Se2.identity(1)
      >>> s.r
      Parameter containing:
      tensor([1.+0.j], requires_grad=True)
      >>> s.t
      x: tensor([0.])
      y: tensor([0.])
docstr_tok: ["Create","a","Se2","group","representing","an","identity","rotation","and","zero","translation",".","Args",":","batch_size",":","the","batch","size","of","the","underlying","data",".","Example",":",">",">",">","s","=","Se2.identity","(","1",")",">",">",">","s.r","Parameter","containing",":","tensor","(","[","1.+0.j","]",",","requires_grad=True",")",">",">",">","s.t","x",":","tensor","(","[","0",".","]",")","y",":","tensor","(","[","0",".","]",")"]
code: def identity(
      cls,
      batch_size: Optional[int] = None,
      device: Optional[Device] = None,
      dtype: Dtype = None,
  ) -> Se2:
      """Create a Se2 group representing an identity rotation and zero translation.
  
      Args:
          batch_size: the batch size of the underlying data.
  
      Example:
          >>> s = Se2.identity(1)
          >>> s.r
          Parameter containing:
          tensor([1.+0.j], requires_grad=True)
          >>> s.t
          x: tensor([0.])
          y: tensor([0.])
      """
      t: Tensor = tensor([0.0, 0.0], device=device, dtype=dtype)
      if batch_size is not None:
          KORNIA_CHECK(
              batch_size >= 1, msg="batch_size must be positive"
          )
          t = t.repeat(batch_size, 1)
      return cls(So2.identity(batch_size, device, dtype), Vector2(t))
  
imports: from __future__ import annotations
  from typing import Optional, overload
  from kornia.core import Device, Dtype, Module, Parameter, Tensor, concatenate, pad, rand, stack, tensor, where, zeros_like
  from kornia.core.check import KORNIA_CHECK, KORNIA_CHECK_SAME_DEVICES, KORNIA_CHECK_TYPE
  from kornia.geometry.liegroup._utils import check_se2_omega_shape, check_se2_t_shape, check_v_shape
  from kornia.geometry.liegroup.so2 import So2
  from kornia.geometry.vector import Vector2
label_desc: Use image node_id 17 for calling the Se2 obj's underlying member method code with example usage: obj.identity(cls, batch_size, device, dtype) and returns: cls