code: def read(self, read_net):
      assert self.cursor, "setup_ex not called"
      assert self.indices, "sort_and_shuffle not called"
      assert self.offsets, "computeoffset not called"
      content = self.dataset.content()
      with core.NameScope(read_net.NextName(self.name)):
          fields = read_net.ReadRandomBatch(
              [self.cursor, self.indices, self.offsets]
              + (content.field_blobs()),
              content.field_names(),
              batch_size=self.batch_size,
              enforce_batch_size=self.enforce_batch_size,
              loop_over=self.loop_over,
          )
          fields = core.output_to_list(fields)
          return (read_net.IsEmpty([fields[0]]), fields)
  
imports: from caffe2.python import core, workspace
  from caffe2.python.dataio import Reader, Writer
  from caffe2.python.schema import Struct, from_blob_list, from_column_list, InitEmptyRecord
  import numpy
label_desc: Use image node_id 6 for calling the _DatasetRandomReader obj's underlying member method code with example usage: obj.read(read_net) and returns: read_net,  fields