class_docstr: A recurrent actor.
  
  An actor based on a recurrent policy which takes non-batched observations and
  outputs non-batched actions, and keeps track of the recurrent state inside. It
  also allows adding experiences to replay and updating the weights from the
  policy on the learner.
class_docstr_tok: ["A","recurrent","actor",".","An","actor","based","on","a","recurrent","policy","which","takes","non-batched","observations","and","outputs","non-batched","actions",",","and","keeps","track","of","the","recurrent","state","inside",".","It","also","allows","adding","experiences","to","replay","and","updating","the","weights","from","the","policy","on","the","learner","."]
code: def observe_first(self, timestep: dm_env.TimeStep):
      if self._adder:
          self._adder.add_first(timestep)
  
      # Set the state to None so that we re-initialize at the next policy call.
      self._state = None
  
imports: from typing import Optional, Tuple
  from acme import adders
  from acme import core
  from acme import types
  from acme.tf import utils
  from acme.tf import variable_utils
  import dm_env
  import sonnet
  import tensorflow
  import tensorflow_probability
label_desc: Use image node_id 4 for calling the RecurrentActor obj's underlying member method code with example usage: obj.observe_first(timestep) without return types