Observer with TFUniformReplayBuffer
This is part of the report


```
elf._env = env
    self._policy = policy
    self._train_step = train_step
    self._observers = observers or []
    # Create a copy of the list to avoid modifying the user provided list.
    self._observers = list(self._observers)
    self._metrics = metrics or []
    self._image_metrics = image_metrics or []
    self._observers.extend(self._metrics + self._image_metrics)
    self._reference_metrics = reference_metrics or []
    # Make sure metrics are not repeated.
    self._observers = list(set(self._observers))
    self._transition_observers = list(transition_observers or [])
    self._info_observers = list(info_observers or [])
```
```

TypeError: unhashable type: 'list'
  In call to configurable 'Actor' (<class 'tf_agents.train.actor.Actor'>)
``` Hi, I think the issue is that you are passing a list in list to "observers" argument of "initial_collect_actor". You should either change the line observers=[replay_observer] to observers=replay_observer or replay_observer = [replay_buffer.add_batch] to replay_observer = replay_buffer.add_batch. I am not sure but I hope both versions should work. Yes I changed that and and then it has worked up to this point, but afterwards this line of code then caused problems.
I also agree with you that both variants should work .

initial_collect_actor.run()
A ops.Py file opens during debug, which has an error in the following.

def raise_from_not_ok_status(e, name) -> NoReturn:
  e.message += (" name: " + str(name if name is not None else ""))
  raise core._status_to_exception(e) from None  # pylint: disable=protected-access

In the Debug Console it says:
raplay_observer: {NameError]NameError("name 'replay_observer' is not defined)
But I already thought that I had defined it, and with: replay_observer = [replay_buffer.add_batch] @MarleneBs  
In order to expedite the trouble-shooting process, please provide a complete code snippet to reproduce the issue and TF version you are using?  
Could you please have a look at this TF-Agents [documentation](https://www.tensorflow.org/agents/tutorials/1_dqn_tutorial) for more details and examples?
Thank you! This issue is stale because it has been open for 7 days with no activity. It will be closed if no further activity occurs. Thank you. This issue was closed because it has been inactive for 7 days since being marked as stale. Please reopen if you'd like to work on this further.
"Hello everybody,
How can I create a TFUniformReplayBuffer-Observer to use in an actor? I created a buffer as follows:

```
replay_buffer = tf_uniform_replay_buffer.TFUniformReplayBuffer(
    data_spec=tf_agent.collect_data_spec,
    batch_size=1,    #The batch size must be taken into account here
    max_length=replay_buffer_capacity)

dataset = replay_buffer.as_dataset(
    sample_batch_size=batch_size,
    num_steps=2,
    single_deterministic_pass=False).prefetch(tf.data.experimental.AUTOTUNE)
experience_dataset_fn = lambda: dataset
``` 
and then tried to create an observer like this: replay_observer = [replay_buffer.add_batch], which is consistent with the TensorFlow documentation. However, it is not used for an actor there.
I attempted the following:
 
```
replay_observer = [replay_buffer.add_batch]
initial_collect_actor = actor.Actor(
  collect_env,
  random_policy,
  train_step,
  steps_per_run=initial_collect_steps,
  observers=[replay_observer])  
```
When I debug, there is an error report that I do not know how to handle because I thought my approach should work.
Does anyone have a solution, approach, or inspiration for me to deal with this problem?

I would be extremely grateful, many thanks for your approaches and creative ideas.