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.