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 store_inverse(self):
      weight_inv = torch.inverse(self.weight.float()).to(
          dtype=self.weight.dtype
      )
      self.weight_inv = nn.Parameter(weight_inv, requires_grad=False)
  
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 3 for calling the InvConvNear obj's underlying member method code with example usage: obj.store_inverse() without return types