class_docstr: HyperLSTM with Ortho Init, Layer Norm, Recurrent Dropout, no Memory Loss.
  
  https://arxiv.org/abs/1609.09106
  http://blog.otoro.net/2016/09/28/hyper-networks/
class_docstr_tok: ["HyperLSTM","with","Ortho","Init",",","Layer","Norm",",","Recurrent","Dropout",",","no","Memory","Loss",".","https",":","\/\/arxiv.org\/abs\/1609.09106","http",":","\/\/blog.otoro.net\/2016\/09\/28\/hyper-networks\/"]
docstr: Initialize the Layer Norm HyperLSTM cell.
  
  Args:
    num_units: int, The number of units in the LSTM cell.
    forget_bias: float, The bias added to forget gates (default 1.0).
    use_recurrent_dropout: Whether to use Recurrent Dropout (default False)
    dropout_keep_prob: float, dropout keep probability (default 0.90)
    use_layer_norm: boolean. (default True)
      Controls whether we use LayerNorm layers in main LSTM & HyperLSTM cell.
    hyper_num_units: int, number of units in HyperLSTM cell.
      (default is 128, recommend experimenting with 256 for larger tasks)
    hyper_embedding_size: int, size of signals emitted from HyperLSTM cell.
      (default is 16, recommend trying larger values for large datasets)
    hyper_use_recurrent_dropout: boolean. (default False)
      Controls whether HyperLSTM cell also uses recurrent dropout.
      Recommend turning this on only if hyper_num_units becomes large (>= 512)
docstr_tok: ["Initialize","the","Layer","Norm","HyperLSTM","cell",".","Args",":","num_units",":","int",",","The","number","of","units","in","the","LSTM","cell",".","forget_bias",":","float",",","The","bias","added","to","forget","gates","(","default","1.0",")",".","use_recurrent_dropout",":","Whether","to","use","Recurrent","Dropout","(","default","False",")","dropout_keep_prob",":","float",",","dropout","keep","probability","(","default","0.90",")","use_layer_norm",":","boolean",".","(","default","True",")","Controls","whether","we","use","LayerNorm","layers","in","main","LSTM","&","HyperLSTM","cell",".","hyper_num_units",":","int",",","number","of","units","in","HyperLSTM","cell",".","(","default","is","128",",","recommend","experimenting","with","256","for","larger","tasks",")","hyper_embedding_size",":","int",",","size","of","signals","emitted","from","HyperLSTM","cell",".","(","default","is","16",",","recommend","trying","larger","values","for","large","datasets",")","hyper_use_recurrent_dropout",":","boolean",".","(","default","False",")","Controls","whether","HyperLSTM","cell","also","uses","recurrent","dropout",".","Recommend","turning","this","on","only","if","hyper_num_units","becomes","large","(",">","=","512",")"]
code: def __init__(
      self,
      num_units,
      forget_bias=1.0,
      use_recurrent_dropout=False,
      dropout_keep_prob=0.90,
      use_layer_norm=True,
      hyper_num_units=256,
      hyper_embedding_size=32,
      hyper_use_recurrent_dropout=False,
  ):
      """Initialize the Layer Norm HyperLSTM cell.
  
      Args:
        num_units: int, The number of units in the LSTM cell.
        forget_bias: float, The bias added to forget gates (default 1.0).
        use_recurrent_dropout: Whether to use Recurrent Dropout (default False)
        dropout_keep_prob: float, dropout keep probability (default 0.90)
        use_layer_norm: boolean. (default True)
          Controls whether we use LayerNorm layers in main LSTM & HyperLSTM cell.
        hyper_num_units: int, number of units in HyperLSTM cell.
          (default is 128, recommend experimenting with 256 for larger tasks)
        hyper_embedding_size: int, size of signals emitted from HyperLSTM cell.
          (default is 16, recommend trying larger values for large datasets)
        hyper_use_recurrent_dropout: boolean. (default False)
          Controls whether HyperLSTM cell also uses recurrent dropout.
          Recommend turning this on only if hyper_num_units becomes large (>= 512)
      """
      self.num_units = num_units
      self.forget_bias = forget_bias
      self.use_recurrent_dropout = use_recurrent_dropout
      self.dropout_keep_prob = dropout_keep_prob
      self.use_layer_norm = use_layer_norm
      self.hyper_num_units = hyper_num_units
      self.hyper_embedding_size = hyper_embedding_size
      self.hyper_use_recurrent_dropout = hyper_use_recurrent_dropout
  
      self.total_num_units = self.num_units + self.hyper_num_units
  
      if self.use_layer_norm:
          cell_fn = LayerNormLSTMCell
      else:
          cell_fn = LSTMCell
      self.hyper_cell = cell_fn(
          hyper_num_units,
          use_recurrent_dropout=hyper_use_recurrent_dropout,
          dropout_keep_prob=dropout_keep_prob,
      )
  
imports: import numpy
  import tensorflow.compat.v1
label_desc: Use image node_id 1 to create a new HyperLSTMCell object from inherited base classes: tf.nn.rnn_cell with example: obj = HyperLSTMCell(num_units, forget_bias, use_recurrent_dropout, dropout_keep_prob, use_layer_norm, hyper_num_units, hyper_embedding_size, hyper_use_recurrent_dropout)