zhixuan-lin/IODINE

What is the correct folder structure for the dataset?

debvrat opened this issue · 1 comments

Hi,

As per the README.txt, I've setup my CLEVR dataset to look like this -

IODINE-master/data/CLEVR/
	images/
		train/
			CLEVR_train_xxxxxx.png
			CLEVR_train_xxxxxx.png
			.
			.

		test/
			.
			.
			.
		val/
			.
			.
			.
	questions/
	scenes/
	COPYRIGHT.txt
	LICENSE.txt
	README.txt

Is this the right folder structure? Because I'm getting the following error, which I think is probably because the png files are not accessible.

Traceback (most recent call last):

  File "/Volumes/GoogleDrive/My Drive/IS 800 - Deep Learning [Project]/IODINE-master/tools/train_net.py", line 90, in <module>
    train_net(cfg)

  File "/Volumes/GoogleDrive/My Drive/IS 800 - Deep Learning [Project]/IODINE-master/tools/train_net.py", line 83, in train_net
    evaluator=evaluator

  File "./lib/engine/train.py", line 48, in train
    for iter, data in enumerate(dataloader):

  File "/Users/akv/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 345, in __next__
    data = self._next_data()

  File "/Users/akv/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 385, in _next_data
    data = self._dataset_fetcher.fetch(index)  # may raise StopIteration

  File "/Users/akv/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]

  File "/Users/akv/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]

  File "./lib/data/clevr.py", line 25, in __getitem__
    img = io.imread(img_path)[:, :, :3]

  File "/Users/akv/anaconda3/lib/python3.7/site-packages/skimage/io/_io.py", line 48, in imread
    img = call_plugin('imread', fname, plugin=plugin, **plugin_args)

  File "/Users/akv/anaconda3/lib/python3.7/site-packages/skimage/io/manage_plugins.py", line 210, in call_plugin
    return func(*args, **kwargs)

  File "/Users/akv/anaconda3/lib/python3.7/site-packages/skimage/io/_plugins/imageio_plugin.py", line 10, in imread
    return np.asarray(imageio_imread(*args, **kwargs))

  File "/Users/akv/anaconda3/lib/python3.7/site-packages/imageio/core/functions.py", line 265, in imread
    reader = read(uri, format, "i", **kwargs)

  File "/Users/akv/anaconda3/lib/python3.7/site-packages/imageio/core/functions.py", line 182, in get_reader
    "Could not find a format to read the specified file in %s mode" % modename

ValueError: Could not find a format to read the specified file in single-image mode
     

Added the 'mode' while searching for images.
Line 17 of \lib\data\clevr.py:

for file in os.scandir(os.path.join(root, 'images', mode)):