hytseng0509 / CrossDomainFewShot

Cross-Domain Few-Shot Classification via Learned Feature-Wise Transformation (ICLR 2020 spotlight)
323 stars 62 forks source link

code error in dataset py #37

Open dota2mhxy opened 2 years ago

dota2mhxy commented 2 years ago

Hello, when I run the code train_ baseline.py, I use multiple domains during training, but the code reports an error。

File "/home/wangchengcheng/WCC/CrossDomainFewShot/train_baseline.py", line 96, in base_loader = base_datamgr.get_data_loader( base_file , aug=params.train_aug ) File "/home/wangchengcheng/WCC/CrossDomainFewShot/data/datamgr.py", line 57, in get_data_loader dataset = SimpleDataset(data_file, transform) File "/home/wangchengcheng/WCC/CrossDomainFewShot/data/dataset.py", line 15, in init with open(data_file, 'r') as f: TypeError: expected str, bytes or os.PathLike object, not list

The error code is in dataset py

class SimpleDataset: def init(self, data_file, transform, target_transform=identity): with open(data_file, 'r') as f: self.meta = json.load(f) self.transform = transform self.target_transform = target_transform

I saw data_file is list , so I reported an error. Maybe you have corrected this problem, but there is a problem with the code version. Thank you for your reply

dota2mhxy commented 2 years ago

@hytseng0509

hytseng0509 commented 2 years ago

Do you follow the instruction here to prepare the dataset? data_file should point to the location of a .json file, it should not be a list.

dota2mhxy commented 2 years ago

yes,I downloaded five datasets and formed JSON files according to the steps, sendpix3

I used params.dataset == 'multi' in my training, so I will use the four datasets except the testset, sendpix2

the variable base_file is has four json file,is list , this cuase the error in this mehod image

@hytseng0509

hytseng0509 commented 2 years ago

The current code does not support training the baseline approach with multiple datasets. If you want to you can consider manually modify the code similar to this.