Spaces:
Runtime error
Runtime error
import logging | |
import os | |
import warnings | |
from bubogpt.common.registry import registry | |
from bubogpt.datasets.builders.multimodal_base_dataset_builder import MultimodalBaseDatasetBuilder | |
from bubogpt.datasets.datasets.audio_image.audio_image_datasets import AudioLocalizationDataset, AudioImageNegDataset | |
class VGGSSBuilderAudioImage(MultimodalBaseDatasetBuilder): | |
train_dataset_cls = AudioLocalizationDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/vggss/align.yaml", | |
"3k": "configs/datasets/vggss/align3k.yaml", | |
"5k": "configs/datasets/vggss/align5k.yaml", | |
"31k": "configs/datasets/vggss/align31k.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
storage_path = build_info.storage | |
datasets = dict() | |
if not os.path.exists(storage_path): | |
warnings.warn("storage path {} does not exist.".format(storage_path)) | |
print("Building datasets with: ", self.get_ann_files()) | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
processors={**{ | |
modal: self.processors[modal]["train"] for modal in self.data_type | |
}, **{ | |
"text": self.processors["text"]["train"] | |
}}, | |
roots={ | |
modal: os.path.join(storage_path, f"{modal}s") for modal in self.data_type | |
}, | |
# ann_paths=[os.path.join(storage_path, 'vggsound_balanced.json')], | |
ann_paths=self.get_ann_files(), | |
) | |
return datasets | |
def get_ann_files(self): | |
ann_files = self.config.build_info.get("ann_files", ["vggsound_balanced.json"]) | |
return [os.path.join(self.config.build_info.storage, fname) for fname in ann_files] | |
class NegBuilderAudioImage(MultimodalBaseDatasetBuilder): | |
train_dataset_cls = AudioImageNegDataset | |
DATASET_CONFIG_DICT = { | |
"default": "configs/datasets/aud_img_neg/default.yaml", | |
} | |
def build_datasets(self): | |
# at this point, all the annotations and image/videos should be all downloaded to the specified locations. | |
logging.info("Building datasets...") | |
self.build_processors() | |
build_info = self.config.build_info | |
# storage_path = build_info.storage | |
storage_path = { | |
"image": build_info.image.storage, | |
"audio": build_info.audio.storage, | |
} | |
ann_files = { | |
"image": build_info.image.ann_files, | |
"audio": build_info.audio.ann_files, | |
} | |
ann_paths = { | |
modal: [os.path.join(storage_path[modal], fname) for fname in ann_files[modal]] for modal in self.data_type | |
} | |
datasets = dict() | |
for path in storage_path.values(): | |
if not os.path.exists(path): | |
warnings.warn("storage path {} does not exist.".format(path)) | |
print("Building datasets with: ", ann_paths) | |
# create datasets | |
dataset_cls = self.train_dataset_cls | |
datasets['train'] = dataset_cls( | |
processors={**{ | |
modal: self.processors[modal]["train"] for modal in self.data_type | |
}, **{ | |
"text": self.processors["text"]["train"] | |
}}, | |
roots={ | |
modal: os.path.join(storage_path[modal], f"{modal}") for modal in self.data_type | |
}, | |
ann_paths=ann_paths, | |
) | |
return datasets | |