class_docstr: Create and applies obfuscation masks.
  The obfuscation is done at group level to match attention.
class_docstr_tok: ["Create","and","applies","obfuscation","masks",".","The","obfuscation","is","done","at","group","level","to","match","attention","."]
docstr: This create random obfuscation for self suppervised pretraining
  Parameters
  ----------
  pretraining_ratio : float
      Ratio of feature to randomly discard for reconstruction
docstr_tok: ["This","create","random","obfuscation","for","self","suppervised","pretraining","Parameters","--","--","--","--","--","pretraining_ratio",":","float","Ratio","of","feature","to","randomly","discard","for","reconstruction"]
code: def __init__(self, pretraining_ratio, group_matrix):
      """
      This create random obfuscation for self suppervised pretraining
      Parameters
      ----------
      pretraining_ratio : float
          Ratio of feature to randomly discard for reconstruction
  
      """
      super(RandomObfuscator, self).__init__()
      self.pretraining_ratio = pretraining_ratio
      # group matrix is set to boolean here to pass all posssible information
      self.group_matrix = (group_matrix > 0) + 0.0
      self.num_groups = group_matrix.shape[0]
  
imports: import torch
  from torch.nn import Linear, BatchNorm1d, ReLU
  import numpy
  from pytorch_tabnet import sparsemax
label_desc: Use image node_id 1 to create a new RandomObfuscator object from inherited base classes: torch.nn with example: obj = RandomObfuscator(pretraining_ratio, group_matrix)