上文记录了slim中的Dataset的定义,而要从其中读取数据则需要slim中DataProvider类。
DatasetProviders 可以从datasets中读取数据。并且可以配置为多个阅读器或者单个阅读器,另外设置为乱序方式读取数据。
DatasetProviders 定义需要的参数如下:
DatasetDataProvider(dataset,
num_readers=1,
reader_kwargs=None,
shuffle=True,
num_epochs=None,
common_queue_capacity=256,
common_queue_min=128,
record_key='record_key',
seed=None,
scope=None)
参数说明如下:
dataset:Dataset 类实例
num_readers:并行阅读器数量
reader_kwargs=None:阅读器关键配置字典
shuffle:是否打乱num_epochs:每个数据源被读取的次数,如果设为None数据将会被无限循环的读取 common_queue_capacity:读取数据队列的容量,默认为256
common_queue_min:读取数据队列的最小容量
record_key:(不是很理解)
seed=None:打乱是的种子
scope=None:范围
使用方法如下:pascal_voc_data_provider = DatasetDataProvider(
slim.datasets.pascal_voc.Dataset(),
num_readers=10,
shuffle=True)
images, labels = pascal_voc_data_provider.get(['images', 'labels'])
!