class_docstr: Invertible Convolution with input splitting as in GlowTTS paper.
  https://arxiv.org/pdf/1811.00002.pdf
  
  Args:
      channels (int): input and output channels.
      num_splits (int): number of splits, also H and W of conv layer.
      no_jacobian (bool): enable/disable jacobian computations.
  
  Note:
      Split the input into groups of size self.num_splits and
      perform 1x1 convolution separately. Cast 1x1 conv operation
      to 2d by reshaping the input for efficiency.
class_docstr_tok: ["Invertible","Convolution","with","input","splitting","as","in","GlowTTS","paper",".","https",":","\/\/arxiv.org\/pdf\/1811.00002.pdf","Args",":","channels","(","int",")",":","input","and","output","channels",".","num_splits","(","int",")",":","number","of","splits",",","also","H","and","W","of","conv","layer",".","no_jacobian","(","bool",")",":","enable\/disable","jacobian","computations",".","Note",":","Split","the","input","into","groups","of","size","self.num_splits","and","perform","1x1","convolution","separately",".","Cast","1x1","conv","operation","to","2d","by","reshaping","the","input","for","efficiency","."]
code: def __init__(
      self, channels, num_splits=4, no_jacobian=False, **kwargs
  ):  # pylint: disable=unused-argument
      super().__init__()
      assert num_splits % 2 == 0
      self.channels = channels
      self.num_splits = num_splits
      self.no_jacobian = no_jacobian
      self.weight_inv = None
  
      w_init = torch.qr(
          torch.FloatTensor(self.num_splits, self.num_splits).normal_()
      )[0]
      if torch.det(w_init) < 0:
          w_init[:, 0] = -1 * w_init[:, 0]
      self.weight = nn.Parameter(w_init)
  
file_path: TTS/TTS/tts/layers/glow_tts/glow.py
imports: import torch
  from torch import nn
  from torch.nn import functional
  from TTS.tts.layers.generic.wavenet import WN
  from ..generic.normalization import LayerNorm
label_desc: Use image node_id 1 to create a new InvConvNear object from inherited base classes: nn with example: obj = InvConvNear(channels, num_splits, no_jacobian)