-
Notifications
You must be signed in to change notification settings - Fork 517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cityscapes AutoLabelling dataset #1000
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, if you can just add a test for this dataloader, just to make sure that it runs
https://github.com/Deci-AI/super-gradients/blob/master/tests/unit_tests/dataloader_factory_test.py
Thanks 🙏
src/super_gradients/training/datasets/segmentation_datasets/cityscape_segmentation.py
Outdated
Show resolved
Hide resolved
Hi @Louis-Dupont there is a design conflict about the Dataloader creation. A dataloader - dataset creation strategy can be done in two different way, First Approach - dataloader factory:train_dataloader: cityscapes_train This approach is problematic since it hinder loading default parameters from a default yaml file defined in code. Then when passing the see this example: dataloader factory method: def my_dataset_train(...):
return get_data_loader(config_name="my_dataset_default", dataset_cls=MyDataset)
...
train_dataloader_params:
sampler: "my_data_sampler" then in train_dataloader: my_dataset_train Following this examples we are not able to initiate my dataset without the sampler field, and we might easily miss is injected in the first place into the dataloader params. (This issue was reported before for the coco dataset with infinite sampler in previous versions.) Seccond Approach - dataset factory:Explicitly define the dataset type to use without using the wrapper dataloader factory: Following the previous example,
...
train_dataloader_params:
dataset: MyDataset
sampler: "my_data_sampler" In contrary to the previous approach we are not bounded by the above default params, and we can set a different dataset params file:
...
train_dataloader_params:
dataset: MyDataset Then in then in defaults:
- dataset_params: my_dataset_custom_params IMO this approach is preferable with better visibility, and doesn't involves hidden behavior within the dataloader factory code. Why not supporting both approaches?Both approaches are supported within SG, but there is bug to use both for a given dataset, and the following error is raised:
|
…nto feature/ALG-1373_cityscapes_auto_label
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
* CityscapesConcatDataset * documentation * ddrnet recipe * unit test * docs * add to init
* CityscapesConcatDataset * documentation * ddrnet recipe * unit test * docs * add to init
* CityscapesConcatDataset * documentation * ddrnet recipe * unit test * docs * add to init
Cityscapes AutoLabelled dataset were introduced by NVIDIA research group.
paper: Hierarchical Multi-Scale Attention for Semantic Segmentation", https://arxiv.org/abs/2005.10821
Official repo: https://github.com/NVIDIA/semantic-segmentation
This PR includes:
CityscapesConcatDataset
to support combination of cityscapes subsets.