class_docstr: Google robot pushing dataset.
code: def generate_samples(self, data_dir, tmp_dir, dataset_split):
      if dataset_split == problem.DatasetSplit.TRAIN:
          urls = self.get_urls(DATA_TRAIN[0], DATA_TRAIN[1])
      else:
          urls = self.get_urls(DATA_TEST_SEEN[0], DATA_TEST_SEEN[1])
          urls += self.get_urls(DATA_TEST_NOVEL[0], DATA_TEST_NOVEL[1])
  
      for url in urls:
          path = generator_utils.maybe_download(
              tmp_dir, os.path.basename(url), url
          )
          for frame_number, frame, state, action in self.parse_frames(
              path
          ):
              yield {
                  "frame_number": [frame_number],
                  "frame": frame,
                  "state": state,
                  "action": action,
              }
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import io
  import os
  import numpy
  from tensor2tensor.data_generators import generator_utils
  from tensor2tensor.data_generators import problem
  from tensor2tensor.data_generators import video_utils
  from tensor2tensor.layers import modalities
  from tensor2tensor.utils import registry
  import tensorflow.compat.v1
label_desc: Use image node_id 9 for calling the VideoGoogleRobotPushing obj's underlying member method code with example usage: obj.generate_samples(data_dir, tmp_dir, dataset_split) without return types