code: def read(self, read_net):
      assert self.cursor, "setup not called."
      content = self.dataset.content()
      with core.NameScope(read_net.NextName(self.name)):
          fields = read_net.ReadNextBatch(
              [self.cursor] + content.field_blobs(),
              content.field_names(),
              batch_size=self.batch_size,
              enforce_batch_size=self.enforce_batch_size,
          )
          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 3 for calling the _DatasetReader obj's underlying member method code with example usage: obj.read(read_net) and returns: read_net,  fields