in iep/data.py [0:0]
def __init__(self, **kwargs):
if 'question_h5' not in kwargs:
raise ValueError('Must give question_h5')
if 'feature_h5' not in kwargs:
raise ValueError('Must give feature_h5')
if 'vocab' not in kwargs:
raise ValueError('Must give vocab')
feature_h5_path = kwargs.pop('feature_h5')
print('Reading features from ', feature_h5_path)
self.feature_h5 = h5py.File(feature_h5_path, 'r')
self.image_h5 = None
if 'image_h5' in kwargs:
image_h5_path = kwargs.pop('image_h5')
print('Reading images from ', image_h5_path)
self.image_h5 = h5py.File(image_h5_path, 'r')
vocab = kwargs.pop('vocab')
mode = kwargs.pop('mode', 'prefix')
question_families = kwargs.pop('question_families', None)
max_samples = kwargs.pop('max_samples', None)
question_h5_path = kwargs.pop('question_h5')
image_idx_start_from = kwargs.pop('image_idx_start_from', None)
print('Reading questions from ', question_h5_path)
with h5py.File(question_h5_path, 'r') as question_h5:
self.dataset = ClevrDataset(question_h5, self.feature_h5, vocab, mode,
image_h5=self.image_h5,
max_samples=max_samples,
question_families=question_families,
image_idx_start_from=image_idx_start_from)
kwargs['collate_fn'] = clevr_collate
super(ClevrDataLoader, self).__init__(self.dataset, **kwargs)