class_docstr: Copy task from the Neural Turing Machines paper:
      http://arxiv.org/abs/1410.5401.
  
  This version of the task is batched.
  All sequences in the same mini-batch are the same length,
  but every new minibatch has a randomly chosen minibatch length.
  
  When a given minibatch has length < seq_len_max, we mask the outputs
  for time steps after time_steps_max.
  
  The generated data is laid out in the same way as other RNN data in neon.
docstr: Set up the attributes that ticker needs to see.
  
  Arguments:
      seq_len_max (int): Longest allowable sequence length
      vec_size (int): Width of the bit-vector to be copied (this was 8 in paper)
docstr_tok: ["Set","up","the","attributes","that","ticker","needs","to","see",".","Arguments",":","seq_len_max","(","int",")",":","Longest","allowable","sequence","length","vec_size","(","int",")",":","Width","of","the","bit-vector","to","be","copied","(","this","was","8","in","paper",")"]
code: def __init__(self, seq_len_max, vec_size):
      """
      Set up the attributes that ticker needs to see.
  
      Arguments:
          seq_len_max (int): Longest allowable sequence length
          vec_size (int): Width of the bit-vector to be copied (this was 8 in paper)
      """
  
      self.seq_len_max = seq_len_max
      self.vec_size = vec_size
      self.nout = (
          self.vec_size
      )  # output has the same dimension as the underlying bit vector
      self.nin = (
          self.vec_size + 2
      )  # input has more dims (for the start and stop channels)
      self.time_steps_func = lambda l: 2 * l + 2
      self.time_steps_max = 2 * self.seq_len_max + 2
      self.time_steps_max = self.time_steps_func(self.seq_len_max)
      self.max_columns = self.time_steps_max * self.be.bsz
  
imports: import numpy
  from neon import NervanaObject
label_desc: Use image node_id 1 to create a new CopyTask object from inherited base classes: Task with example: obj = CopyTask(seq_len_max, vec_size)