class_docstr: Kaiming Normal weight initialisation. Uses `torch.nn.init.kaiming_normal_` on the ``weight`` attribute of the
  filtered modules.
  
  Example: ::
  
      >>> import torch
      >>> import torch.nn as nn
      >>> from torchbearer import Trial
      >>> from torchbearer.callbacks.init import KaimingNormal
  
      # 100 random data points
      >>> data = torch.rand(100, 3, 5, 5)
      >>> example_batch = data[:3]
      >>> initialiser = KaimingNormal()
  
      # Model and trail using kaiming init for some random data
      >>> model = nn.Sequential(nn.Conv2d(3, 1, 3), nn.ReLU())
      >>> trial = Trial(model, callbacks=[initialiser]).with_train_data(data, data+5)
  
  Args:
      a (int): See `PyTorch kaiming_normal_ <https://pytorch.org/docs/stable/nn.html#torch.nn.init.kaiming_normal_>`_
      mode (str): See `PyTorch kaiming_normal_`_
      nonlinearity (str): See `PyTorch kaiming_normal_`_
      modules (Iterable[nn.Module] or nn.Module, optional): an iterable of nn.Modules or a
          single nn.Module that will have weights initialised, otherwise this is retrieved from the model
      targets (list[String]): A list of lookup strings to match which modules will be initialised
  
  See:
      `PyTorch kaiming_normal_`_
class_docstr_tok: ["Kaiming","Normal","weight","initialisation",".","Uses","`","torch.nn.init.kaiming_normal_","`","on","the","``","weight","``","attribute","of","the","filtered","modules",".","Example",":",":",":",">",">",">","import","torch",">",">",">","import","torch.nn","as","nn",">",">",">","from","torchbearer","import","Trial",">",">",">","from","torchbearer.callbacks.init","import","KaimingNormal","#","100","random","data","points",">",">",">","data","=","torch.rand","(","100",",","3",",","5",",","5",")",">",">",">","example_batch","=","data","[",":3","]",">",">",">","initialiser","=","KaimingNormal","(",")","#","Model","and","trail","using","kaiming","init","for","some","random","data",">",">",">","model","=","nn.Sequential","(","nn.Conv2d","(","3",",","1",",","3",")",",","nn.ReLU","(",")",")",">",">",">","trial","=","Trial","(","model",",","callbacks=","[","initialiser","]",")",".with_train_data","(","data",",","data+5",")","Args",":","a","(","int",")",":","See","`","PyTorch","kaiming_normal_","<","https",":","\/\/pytorch.org\/docs\/stable\/nn.html","#","torch.nn.init.kaiming_normal_",">","`","_","mode","(","str",")",":","See","`","PyTorch","kaiming_normal_","`","_","nonlinearity","(","str",")",":","See","`","PyTorch","kaiming_normal_","`","_","modules","(","Iterable","[","nn.Module","]","or","nn.Module",",","optional",")",":","an","iterable","of","nn.Modules","or","a","single","nn.Module","that","will","have","weights","initialised",",","otherwise","this","is","retrieved","from","the","model","targets","(","list","[","String","]",")",":","A","list","of","lookup","strings","to","match","which","modules","will","be","initialised","See",":","`","PyTorch","kaiming_normal_","`","_"]
code: def __init__(
      self,
      a=0,
      mode="fan_in",
      nonlinearity="leaky_relu",
      modules=None,
      targets=["Conv", "Linear", "Bilinear"],
  ):
      def initialiser(module):
          init.kaiming_normal_(
              module.weight.data,
              a=a,
              mode=mode,
              nonlinearity=nonlinearity,
          )
  
      super(KaimingNormal, self).__init__(
          initialiser, modules=modules, targets=targets
      )
  
imports: import torchbearer
  from torchbearer import cite
  from torchbearer.callbacks import Callback
  import torch.nn.init
label_desc: Use image node_id 1 to create a new KaimingNormal object from inherited base classes: WeightInit with example: obj = KaimingNormal(a, mode, nonlinearity, modules, targets)