RSVQAxBEN DataSets and DataModules#
Dataloader and Datamodule for RSVQAxBEN dataset. Files can be requested by contacting the author. Original Paper of Dataset: https://rsvqa.sylvainlobry.com/IGARSS21.pdf Based on Image Data from: https://arxiv.org/abs/2105.07921 https://bigearth.net/
- class configilm.extra.DataSets.RSVQAxBEN_DataSet.RSVQAxBENDataSet#
- __init__(data_dirs, split=None, transform=None, max_len=None, img_size=(12, 120, 120), selected_answers=None, num_classes=1000, tokenizer=None, seq_length=64, return_extras=False)#
This class implements the RSVQAxBEN dataset. It is a subclass of ClassificationVQADataset and provides some dataset specific functionality.
- Parameters:
data_dirs (Mapping[str, Path]) – A dictionary containing the paths to the different data directories. Required keys are “images_lmdb”, “train_data”, “val_data” and “test_data”. The “_data” keys are used to identify the directory that contains the data files which are named “RSVQAxBEN_QA_{split}.json” that contains the qa-pairs for the split.
split (Optional[str]) –
The name of the split to use. Can be either “train”, “val” or “test”. If None is provided, all splits will be used.
- default:
None
transform (Optional[Callable]) –
A callable that is used to transform the images after loading them. If None is provided, no transformation is applied.
- default:
None
max_len (Optional[int]) –
The maximum number of qa-pairs to use. If None or -1 is provided, all qa-pairs are used.
- default:
None
img_size (tuple) –
The size of the images. Note that this includes the number of channels. For example, if the images are RGB images, the size should be (3, h, w). See BEN_DataSet for available channel configurations.
- default:
(12, 120, 120)
selected_answers (Optional[list]) –
A list of answers that should be used. If None is provided, the num_classes most common answers are used. If selected_answers is not None, num_classes is ignored.
- default:
None
num_classes (Optional[int]) –
The number of classes to use. Only used if selected_answers is None. If set to None, all answers are used.
- default:
1000
tokenizer (Optional[Callable]) –
A callable that is used to tokenize the questions. If set to None, the default tokenizer (from configilm.util) is used.
- default:
None
seq_length (int) –
The maximum length of the tokenized questions.
- default:
64
return_extras (bool) –
If True, the dataset will return the type of the question in addition to the image, question and answer.
- default:
False
- load_image(key)#
This method should load the image with the given name and return it as a tensor.
- Parameters:
key (str) – The name of the image to load
- Returns:
The image as a tensor
- Return type:
Tensor
- prepare_split(split)#
This method should return a list of tuples, where each tuple contains the following elements:
The key of the image at index 0
The question at index 1
The answer at index 2
additional information at index 3 and higher
- Parameters:
split (str) – The name of the split to prepare
- Returns:
A list of tuples, each tuple containing the elements described
- Return type:
list
- split_names()#
Returns the names of the splits that are available for this dataset. The default implementation returns {“train”, “val”, “test”}. If you want to use different names, you should override this method.
- Returns:
A set of strings, each string being the name of a split
- Return type:
set[str]
- configilm.extra.DataSets.RSVQAxBEN_DataSet.resolve_data_dir(data_dir, allow_mock=False, force_mock=False)#
Helper function that tries to resolve the correct directory.
- Parameters:
data_dir (Optional[Mapping[str, Path]]) – current path that is suggested
allow_mock (bool) – allows mock data path to be returned
force_mock (bool) – only mock data path will be returned. Useful for debugging with small data
- Returns:
a valid dir to the dataset if data_dir was none, otherwise data_dir
- Return type:
Mapping[str, Path]
Dataloader and Datamodule for RSVQAxBEN dataset. Files can be requested by contacting the author. Original Paper of Dataset: https://rsvqa.sylvainlobry.com/IGARSS21.pdf Based on Image Data from: https://arxiv.org/abs/2105.07921 https://bigearth.net/
- class configilm.extra.DataModules.RSVQAxBEN_DataModule.RSVQAxBENDataModule#
- __init__(data_dirs, batch_size=16, img_size=(12, 120, 120), num_workers_dataloader=4, shuffle=None, max_len=None, tokenizer=None, seq_length=64, pin_memory=None)#
This class implements the DataModule for the RSVQAxBEN dataset.
- Parameters:
data_dirs (Mapping[str, Path]) – A dictionary containing the paths to the different data directories. Required keys are “images_lmdb”, “train_data”, “val_data” and “test_data”. The “_data” keys are used to identify the directory that contains the data files which are named “RSVQAxBEN_QA_{split}.json” that contains the qa-pairs for the split.
batch_size (int) –
The batch size to use for the dataloaders.
- default:
16
img_size (tuple) –
The size of the images. Note that this includes the number of channels. For example, if the images are RGB images, the size should be (3, h, w). See BEN_DataSet for available channel configurations.
- default:
(12, 120, 120)
num_workers_dataloader (int) –
The number of workers to use for the dataloaders.
- default:
4
shuffle (Optional[bool]) –
Whether to shuffle the data in the dataloaders. If None is provided, the data is shuffled for training and not shuffled for validation and test.
- default:
None
max_len (Optional[int]) –
The maximum number of qa-pairs to use. If None or -1 is provided, all qa-pairs are used.
- default:
None
tokenizer (Optional[Callable]) –
A callable that is used to tokenize the questions. If set to None, the default tokenizer (from configilm.util) is used.
- default:
None
seq_length (int) –
The maximum length of the tokenized questions. If the tokenized question is longer than this, it will be truncated. If it is shorter, it will be padded.
- default:
64
pin_memory (Optional[bool]) –
Whether to use pinned memory for the dataloaders. If None is provided, it is set to True if a GPU is available and False otherwise.
- default:
None
- setup(stage=None)#
Prepares the data sets for the specific stage.
“fit”: train and validation data set
“test”: test data set
None: all data sets
- Parameters:
stage (Optional[str]) –
None, “fit”, or “test”
- default:
None
- test_dataloader()#
Returns the dataloader for the test data.
- Raises:
AssertionError if the test dataset is not set up. This can happen if the setup() method is not called before this method or the dataset has no test data.
- train_dataloader()#
Returns the dataloader for the training data.
- Raises:
AssertionError if the training dataset is not set up. This can happen if the setup() method is not called before this method or the dataset has no training data.
- val_dataloader()#
Returns the dataloader for the validation data.
- Raises:
AssertionError if the validation dataset is not set up. This can happen if the setup() method is not called before this method or the dataset has no validation data.