code: def erase(memory, address, reset_weights):
      """Erases rows over addressing distribution by given reset word weights.
  
      M_t(i) = M_{t-1}(i) * (1 - w_t(i) * e_t)
  
      The erase is defined as a component-wise OR over reset strengths between
      write heads, followed by a componentwise multiplication. The reset weights
      contains values in [0, 1] where 1 indicates a complete reset. The reset
      weights are granular over a word, allowing for part of the word to be erased.
  
      Args:
        memory: 3D Tensor [batch_size, memory_size, word_size].
        address: 3D Tensor [batch_size, num_writes, memory_size].
        reset_weights: 3D Tensor [batch_size, num_writes, word_size].
  
      Returns:
        erased memory: 3D Tensor [batch_size, num_reads, word_size].
      """
  
      with tf.name_scope("erase_memory"):
          address = tf.expand_dims(address, 3)
          reset_weights = tf.expand_dims(reset_weights, 2)
          weighted_resets = address * reset_weights
          reset_gate = tf.reduce_prod(1 - weighted_resets, [1])
          return memory * reset_gate
  
imports: import tensorflow
label_desc: Use image node_id 2 for calling a global function with example usage: erase(memory, address, reset_weights) and returns: unknown