class_docstr: SVG0 learner with optional prior.
  
  This is the learning component of an SVG0 agent. IE it takes a dataset as
  input and implements update functionality to learn from this dataset.
class_docstr_tok: ["SVG0","learner","with","optional","prior",".","This","is","the","learning","component","of","an","SVG0","agent",".","IE","it","takes","a","dataset","as","input","and","implements","update","functionality","to","learn","from","this","dataset","."]
code: def step(self):
      # Run the learning step.
      fetches = self._step()
  
      # Compute elapsed time.
      timestamp = time.time()
      elapsed_time = (
          timestamp - self._timestamp if self._timestamp else 0
      )
      self._timestamp = timestamp
  
      # Update our counts and record it.
      counts = self._counter.increment(steps=1, walltime=elapsed_time)
      fetches.update(counts)
  
      # Checkpoint and attempt to write the logs.
      if self._checkpointer is not None:
          self._checkpointer.save()
      if self._snapshotter is not None:
          self._snapshotter.save()
      self._logger.write(fetches)
  
file_path: acme/acme/agents/tf/svg0_prior/learning.py
imports: import time
  from typing import Dict, Iterator, List, Optional
  import acme
  from acme.agents.tf.svg0_prior import utils
  from acme.tf import savers
  from acme.tf import utils
  from acme.utils import counting
  from acme.utils import loggers
  import numpy
  import reverb
  import sonnet
  import tensorflow
  from trfl import continuous_retrace_ops
label_desc: Use image node_id 3 for calling the SVG0Learner obj's underlying member method code with example usage: obj.step() without return types