mmf icon indicating copy to clipboard operation
mmf copied to clipboard

AttributeError: 'VisualGenomeDataset' object has no attribute '_get_absolute_path'

Open Anth0nyWu opened this issue 4 years ago • 3 comments

🐛 Bug

File "/home/ubuntu/vqa/GMN/mmf/mmf/datasets/builders/visual_genome/dataset.py", line 44, in init scene_graph_file = self._get_absolute_path(scene_graph_file) AttributeError: 'VisualGenomeDataset' object has no attribute '_get_absolute_path'

Command that i run in shell

CUDA_VISIBLE_DEVICES="0" mmf_run config=projects/gmn/configs/visual_genome/defaults.yaml model=gmn datasets=visual_genome run_type=train env.data_dir=/media/ubuntu/MyDisk/data_mmf/vg

To Reproduce

I ran the command above where gmn is a model class inheriting from Pythia and get this error:

Traceback (most recent call last): File "/home/ubuntu/anaconda3/envs/mmf4/bin/mmf_run", line 33, in sys.exit(load_entry_point('mmf', 'console_scripts', 'mmf_run')()) File "/home/ubuntu/vqa/GMN/mmf/mmf_cli/run.py", line 123, in run main(configuration, predict=predict) File "/home/ubuntu/vqa/GMN/mmf/mmf_cli/run.py", line 52, in main trainer.load() File "/home/ubuntu/vqa/GMN/mmf/mmf/trainers/mmf_trainer.py", line 41, in load super().load() File "/home/ubuntu/vqa/GMN/mmf/mmf/trainers/base_trainer.py", line 29, in load self.load_datasets() File "/home/ubuntu/vqa/GMN/mmf/mmf/trainers/mmf_trainer.py", line 68, in load_datasets self.dataset_loader.load_datasets() File "/home/ubuntu/vqa/GMN/mmf/mmf/common/dataset_loader.py", line 17, in load_datasets self.train_dataset.load(self.config) File "/home/ubuntu/vqa/GMN/mmf/mmf/datasets/multi_dataset_loader.py", line 114, in load self.build_datasets(config) File "/home/ubuntu/vqa/GMN/mmf/mmf/datasets/multi_dataset_loader.py", line 129, in build_datasets dataset_instance = build_dataset(dataset, dataset_config, self.dataset_type) File "/home/ubuntu/vqa/GMN/mmf/mmf/utils/build.py", line 111, in build_dataset dataset = builder_instance.load_dataset(config, dataset_type) File "/home/ubuntu/vqa/GMN/mmf/mmf/datasets/base_dataset_builder.py", line 96, in load_dataset dataset = self.load(config, dataset_type, *args, **kwargs) File "/home/ubuntu/vqa/GMN/mmf/mmf/datasets/builders/vqa2/builder.py", line 23, in load dataset = super().load(*args, **kwargs) File "/home/ubuntu/vqa/GMN/mmf/mmf/datasets/mmf_dataset_builder.py", line 138, in load dataset = dataset_class(config, dataset_type, imdb_idx) File "/home/ubuntu/vqa/GMN/mmf/mmf/datasets/builders/visual_genome/dataset.py", line 44, in init scene_graph_file = self._get_absolute_path(scene_graph_file) AttributeError: 'VisualGenomeDataset' object has no attribute '_get_absolute_path'

Additional context

I have changed the first lines of the following config file for using more information from the dataset. "mmf/projects/gmn/configs/visual_genome/defaults.yaml"

dataset_config: visual_genome: return_scene_graph: true # false return_objects: true # false return_relationships: true # false return_features_info: true # false return_region_descriptions: true no_unk: true

Discussion

I found that the attribute '_get_absolute_path' has not been written yet. That is why the error occurs when "return_scene_graph", "return_objects", "return_relationships" are true.

I print the sample_list for pythia and found ['text', 'question_id', 'image_id', 'image_feature_0', 'image_feature_1', 'targets', 'dataset_name', 'dataset_type'] where no region descriptions appear. Is there any way to use the region descriptions, scene graphs, objects, etc. of visual genome? Do I need to include those items in sample_list to use them?

Anth0nyWu avatar Nov 10 '20 13:11 Anth0nyWu

Hi, thanks for reporting this. This will need a fix. Would you like to open up a PR?

apsdehal avatar Nov 10 '20 19:11 apsdehal

Hi @apsdehal , I want to work on this issue. I observed that this issue is still there and there is get_absolute_path function available in the code. Can I use the same function? Let me know if my understanding is correct.

sonuagarwal1008 avatar Mar 30 '21 02:03 sonuagarwal1008

Hey @apsdehal I want to work on this issue. I observed that this issue is still there and there is a get_absolute_path function available in the code. Can I work on this issue?

Vaishnvee-Shinde avatar Dec 27 '21 12:12 Vaishnvee-Shinde