# Path: tf_slim/data/data_provider.py
# class DataProvider(object):
#   def __init__(self, items_to_tensors, num_samples):
#   def get(self, items):
#   def list_items(self):
#   def num_samples(self):
#   def _validate_items(self, items):
# 
# Path: tf_slim/data/parallel_reader.py
# class ParallelReader(io_ops.ReaderBase):
#   def __init__(self,
#                reader_class,
#                common_queue,
#                num_readers=4,
#                reader_kwargs=None):
#   def num_readers(self):
#   def common_queue(self):
#   def read(self, queue, name=None):
#   def read_up_to(self, queue, num_records, name=None):
#   def _configure_readers_by(self, queue):
#   def num_records_produced(self, name=None):
#   def num_work_units_completed(self, name=None):
# def parallel_read(data_sources,
#                   reader_class,
#                   num_epochs=None,
#                   num_readers=4,
#                   reader_kwargs=None,
#                   shuffle=True,
#                   dtypes=None,
#                   capacity=256,
#                   min_after_dequeue=128,
#                   seed=None,
#                   scope=None):
# def single_pass_read(data_sources, reader_class, reader_kwargs=None,
#                      scope=None):
# def get_data_files(data_sources):


from tf_slim.data import data_provider
from tf_slim.data import parallel_reader
Additionally, the data being read can be optionally shuffled.

For example, to read data using a single thread without shuffling:

  pascal_voc_data_provider = DatasetDataProvider(
      slim.datasets.pascal_voc.get_split('train'),
      shuffle=False)
  images, labels = pascal_voc_data_provider.get(['images', 'labels'])

To read data using multiple readers simultaneous with shuffling:

  pascal_voc_data_provider = DatasetDataProvider(
      slim.datasets.pascal_voc.Dataset(),
      num_readers=10,
      shuffle=True)
  images, labels = pascal_voc_data_provider.get(['images', 'labels'])

Equivalently, one may request different fields of the same sample separately:

  [images] = pascal_voc_data_provider.get(['images'])
  [labels] = pascal_voc_data_provider.get(['labels'])

"""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function




# Path: tf_slim/data/data_provider.py
# class DataProvider(object):
#   def __init__(self, items_to_tensors, num_samples):
#   def get(self, items):
#   def list_items(self):
#   def num_samples(self):
#   def _validate_items(self, items):
# 
# Path: tf_slim/data/parallel_reader.py
# class ParallelReader(io_ops.ReaderBase):
#   def __init__(self,
#                reader_class,
#                common_queue,
#                num_readers=4,
#                reader_kwargs=None):
#   def num_readers(self):
#   def common_queue(self):
#   def read(self, queue, name=None):
#   def read_up_to(self, queue, num_records, name=None):
#   def _configure_readers_by(self, queue):
#   def num_records_produced(self, name=None):
#   def num_work_units_completed(self, name=None):
# def parallel_read(data_sources,
#                   reader_class,
#                   num_epochs=None,
#                   num_readers=4,
#                   reader_kwargs=None,
#                   shuffle=True,
#                   dtypes=None,
#                   capacity=256,
#                   min_after_dequeue=128,
#                   seed=None,
#                   scope=None):
# def single_pass_read(data_sources, reader_class, reader_kwargs=None,
#                      scope=None):
# def get_data_files(data_sources):


# Path: tf_slim/data/dataset_data_provider.py
from tf_slim.data import data_provider
from tf_slim.data import parallel_reader

Additionally, the data being read can be optionally shuffled.

For example, to read data using a single thread without shuffling:

  pascal_voc_data_provider = DatasetDataProvider(
      slim.datasets.pascal_voc.get_split('train'),
      shuffle=False)
  images, labels = pascal_voc_data_provider.get(['images', 'labels'])

To read data using multiple readers simultaneous with shuffling:

  pascal_voc_data_provider = DatasetDataProvider(
      slim.datasets.pascal_voc.Dataset(),
      num_readers=10,
      shuffle=True)
  images, labels = pascal_voc_data_provider.get(['images', 'labels'])

Equivalently, one may request different fields of the same sample separately:

  [images] = pascal_voc_data_provider.get(['images'])
  [labels] = pascal_voc_data_provider.get(['labels'])

"""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function




class DatasetDataProvider(data_provider.DataProvider):