class_docstr: A recurrent network for use with IMPALA.
  
  See https://arxiv.org/pdf/1802.01561.pdf for more information.
class_docstr_tok: ["A","recurrent","network","for","use","with","IMPALA",".","See","https",":","\/\/arxiv.org\/pdf\/1802.01561.pdf","for","more","information","."]
docstr: Efficient unroll that applies embeddings, MLP, & convnet in one pass.
docstr_tok: ["Efficient","unroll","that","applies","embeddings",",","MLP",",","&","convnet","in","one","pass","."]
code: def unroll(
      self,
      inputs: observation_action_reward.OAR,
      states: snt.LSTMState,
      sequence_length: int,
  ) -> Tuple[Tuple[Logits, Value], snt.LSTMState]:
      """Efficient unroll that applies embeddings, MLP, & convnet in one pass."""
      embeddings = snt.BatchApply(self._embed)(inputs)  # [T, B, D+A+1]
      embeddings, new_states = snt.static_unroll(
          self._core, embeddings, states, sequence_length
      )
      logits, values = snt.BatchApply(self._head)(embeddings)
  
      return (logits, values), new_states
  
imports: from typing import Optional, Tuple
  from acme.tf.networks import base
  from acme.tf.networks import duelling
  from acme.tf.networks import embedding
  from acme.tf.networks import policy_value
  from acme.tf.networks import recurrence
  from acme.tf.networks import vision
  from acme.wrappers import observation_action_reward
  import sonnet
  import tensorflow
label_desc: Use image node_id 4 for calling the DeepIMPALAAtariNetwork obj's underlying member method code with example usage: obj.unroll(inputs, states, sequence_length) and returns: logits,  values,  new_states