RSVQA-HR DataSets and DataModules#
- class configilm.extra.DataSets.RSVQAHR_DataSet.RSVQAHRDataSet#
- __init__(data_dirs, split=None, transform=None, max_len=None, img_size=(3, 256, 256), selected_answers=None, num_classes=94, tokenizer=None, seq_length=64, return_extras=False, use_file_format='tif', quantize_answers=True)#
This class implements the RSVQA-HR 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. It should contain the following keys: - images: Path to the directory containing the images. - train_data: Path to the directory containing the training data. - val_data: Path to the directory containing the validation data. - test_data: Path to the directory containing the test data. - test_phili_data: Path to the directory containing the test data for the Philadelphia test split.
split (Optional[str]) –
The name of the split to use. Can be either “train”, “val”, “test” or “test_phili”. 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 will be used.
- default:
None
img_size (tuple) –
The size of the images.
- default:
(3, 256, 256)
selected_answers (Optional[list]) –
- A list of answers that should be used. If None is provided, the num_classes most common
answers are used.
- 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:
94
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
use_file_format (str) –
The file format of the images. Can be either “tif” or “png”.
- default:
”tif”
quantize_answers (bool) –
If True, the answers for area questions will be quantized into 5 buckets: 0m2, between 1m2 and 10m2, between 11m2 and 100m2, between 101m2 and 1000m2 and more than 1000m2.
- default:
True
- 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[tuple[str, str, str, str]]
- 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.RSVQAHR_DataSet.resolve_data_dir(data_dir, allow_mock=False, force_mock=False)#
Helper function that tries to resolve the correct directory for the RSVQA-HR dataset.
- Parameters:
data_dir (Optional[Mapping[str, Path]]) – Optional path to the data directory. If None, the default data directory will be used.
allow_mock (bool) –
allows mock data path to be returned
- Default:
False
force_mock (bool) –
only mock data path will be returned. Useful for debugging with small data or if the data is not downloaded yet.
- Default:
False
- Return type:
Mapping[str, Path]
Dataloader and Datamodule for RSVQA HR dataset.
- class configilm.extra.DataModules.RSVQAHR_DataModule.RSVQAHRDataModule#
- __init__(data_dirs, batch_size=16, img_size=(3, 256, 256), num_workers_dataloader=4, shuffle=None, max_len=None, tokenizer=None, seq_length=64, pin_memory=None, use_phili_test=False, use_file_format='tif', quantize_answers=True)#
This class implements the DataModule for the RSVQA HR dataset.
- Parameters:
data_dirs (Mapping[str, Path]) – A dictionary containing the paths to the different data directories. It should contain the following keys: - images: Path to the directory containing the images. - train_data: Path to the directory containing the training data. - val_data: Path to the directory containing the validation data. - test_data: Path to the directory containing the test data. - test_phili_data: Path to the directory containing the test data for the Philadelphia test split.
batch_size (int) –
The batch size to use for the dataloaders.
- default:
16
img_size (tuple) –
The size of the images.
- default:
(3, 256, 256)
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
use_phili_test (bool) –
If True, the Philadelphia test split will be used instead of the regular test split.
- default:
False
use_file_format (str) –
The file format of the images. Can be either “tif” or “png”.
- default:
”tif”
quantize_answers (bool) –
If True, the answers for area questions will be quantized into 5 buckets: 0m2, between 1m2 and 10m2, between 11m2 and 100m2, between 101m2 and 1000m2 and more than 1000m2.
- default:
True
- 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
Prints the time it needed for this operation and other statistics if print_infos is set.
- Parameters:
stage (Optional[str]) – None, “fit” or “test”
- 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.