Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

all_datasets.py 3.5 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
  1. from collections import defaultdict
  2. from typing import Dict, List, Type
  3. from super_gradients.training.datasets.dataset_interfaces import DatasetInterface, TestDatasetInterface, \
  4. LibraryDatasetInterface, \
  5. ClassificationDatasetInterface, Cifar10DatasetInterface, Cifar100DatasetInterface, \
  6. ImageNetDatasetInterface, TinyImageNetDatasetInterface, \
  7. CoCoDetectionDatasetInterface, CoCoSegmentationDatasetInterface, CoCo2014DetectionDatasetInterface, \
  8. PascalAUG2012SegmentationDataSetInterface, PascalVOC2012SegmentationDataSetInterface
  9. from super_gradients.common.data_types.enum.deep_learning_task import DeepLearningTask
  10. CLASSIFICATION_DATASETS = {
  11. "test_dataset": TestDatasetInterface,
  12. "library_dataset": LibraryDatasetInterface,
  13. "classification_dataset": ClassificationDatasetInterface,
  14. "cifar_10": Cifar10DatasetInterface,
  15. "cifar_100": Cifar100DatasetInterface,
  16. "imagenet": ImageNetDatasetInterface,
  17. "tiny_imagenet": TinyImageNetDatasetInterface
  18. }
  19. OBJECT_DETECTION_DATASETS = {
  20. "coco": CoCoDetectionDatasetInterface,
  21. "coco2014": CoCo2014DetectionDatasetInterface
  22. }
  23. SEMANTIC_SEGMENTATION_DATASETS = {
  24. "coco": CoCoSegmentationDatasetInterface,
  25. "pascal_voc": PascalVOC2012SegmentationDataSetInterface,
  26. "pascal_aug": PascalAUG2012SegmentationDataSetInterface
  27. }
  28. class DataSetDoesNotExistException(Exception):
  29. """
  30. The requested dataset does not exist, or is not implemented.
  31. """
  32. pass
  33. class SgLibraryDatasets(object):
  34. """
  35. Holds all of the different library dataset dictionaries, by DL Task mapping
  36. Attributes:
  37. CLASSIFICATION Dictionary of Classification Data sets
  38. OBJECT_DETECTION Dictionary of Object Detection Data sets
  39. SEMANTIC_SEGMENTATION Dictionary of Semantic Segmentation Data sets
  40. """
  41. CLASSIFICATION = CLASSIFICATION_DATASETS
  42. OBJECT_DETECTION = OBJECT_DETECTION_DATASETS
  43. SEMANTIC_SEGMENTATION = SEMANTIC_SEGMENTATION_DATASETS
  44. _datasets_mapping = {
  45. DeepLearningTask.CLASSIFICATION: CLASSIFICATION,
  46. DeepLearningTask.SEMANTIC_SEGMENTATION: SEMANTIC_SEGMENTATION,
  47. DeepLearningTask.OBJECT_DETECTION: OBJECT_DETECTION,
  48. }
  49. @staticmethod
  50. def get_all_available_datasets() -> Dict[str, List[str]]:
  51. """
  52. Gets all the available datasets.
  53. """
  54. all_datasets: Dict[str, List[str]] = defaultdict(list)
  55. for dl_task, task_datasets in SgLibraryDatasets._datasets_mapping.items():
  56. for dataset_name, dataset_interface in task_datasets.items():
  57. all_datasets[dl_task].append(dataset_name)
  58. # TODO: Return Dataset Metadata list from the dataset interfaces objects
  59. # TODO: Transform DatasetInterface -> DataSetMetadata
  60. return all_datasets
  61. @staticmethod
  62. def get_dataset(dl_task: str, dataset_name: str) -> Type[DatasetInterface]:
  63. """
  64. Get's a dataset with a given name for a given deep learning task.
  65. examp:
  66. >>> SgLibraryDatasets.get_dataset(dl_task='classification', dataset_name='cifar_100')
  67. >>> <Cifar100DatasetInterface instance>
  68. """
  69. task_datasets: Dict[str, DatasetInterface] = SgLibraryDatasets._datasets_mapping.get(dl_task)
  70. if not task_datasets:
  71. raise ValueError(f"Invalid Deep Learining Task: {dl_task}")
  72. dataset: DatasetInterface = task_datasets.get(dataset_name)
  73. if not dataset:
  74. raise DataSetDoesNotExistException(dataset_name)
  75. return dataset
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...