NVIDIA/DALI

ExternalSource and fn.readers.file

Open

#3,811 opened on Apr 11, 2022

View on GitHub
 (9 comments) (0 reactions) (1 assignee)C++ (670 forks)auto 404
external sourcehelp wanted

Repository metrics

Stars
 (5,722 stars)
PR merge metrics
 (PR metrics pending)

Description

  1. CodeBase1: I need to use the weighted random sampler for ImageNet1000, so, i checke this issue. link. Then, I followed this link to get my own codes, including Sampler, ExternalSourcePipeline and DALIGenericIterator.

  2. CodeBase2: Also, I check this ImageNet1000-resnet link.

However, the difference in efficiency of loading data is surprisingly large!!!

I'm not sure. The possible reason may be the difference between fn.readers.file in link and np.fromfile in link

for _ in range(self.batch_size):
    jpeg_filename, label = self.files[self.i % self.n].split(' ')
    batch.append(np.fromfile(self.images_dir + jpeg_filename, dtype = np.uint8))  # we can use numpy
    labels.append(torch.tensor([int(label)], dtype = torch.uint8)) # or PyTorch's native tensors
    self.i += 1

How should I achieve an efficiency similar to CodeBase2 with weighted random sampler.

Contributor guide