xiaoiker/GCN-NAS

How to get the following two files in search_joint.yaml?

desertfex opened this issue · 4 comments

/scratch/project_2001654/wp/data/ntu/xview/train_data_joint1.npy
/scratch/project_2001654/wp/data/ntu/xview/train_data_joint2.npy
I want to run gcn_search.py, and the above two files are needed.
The ‘readme.md‘ file shows that ' Devide the training data into trainging set and searching parts, as it is for a general NAS'. But I still do not know how. Is there any code for this? Sorry to bother you. I would be greatly appreciated if you could give me some advice.

Hello,

Thanks for interesting in our work.
If you want to try our searching part, there are several ways to prepare the data.

  1. Easiest way is : do not shuffle the training dataset and directly use the first 2/3 to train and the last 1/3 to search. To this end, you can set a flag at the training part.
  2. You can use the data_gen/ntu_gendata.py to customize your own data.
  3. Use python (numpy) to read the pre-processed data, say xview/train_data_joint.npy, and divide it with a rule and save it.

If you just want to test this method, you can just use a very small part of the data. This datset is much larger than CIFAR, thus the search is really not that fast.

All the best,

Wei

Thank you very much for your patience. I still have two questions.
The first:
Easiest way is : do not shuffle the training dataset and directly use the first 2/3 to train and the last 1/3 to search.
What's the meaning of 'training dataset'? For the ntu dataset, the total dataset is divided to two parts, 2/3 for training and 1/3 for testing. Do you mean that the 2/3 part is the 'training dataset'? Or the total dataset is the 'training dataset'?
The second: 'To this end, you can set a flag at the training part.'
I have read your codes. Is the flag you mentioned in the gcn_search.py:
if self.arg.phase == 'train':
self.data_loader['train'] = torch.utils.data.DataLoader(
dataset=Feeder(**self.arg.train_feeder_args),
batch_size=self.arg.batch_size,

            shuffle=False,

            num_workers=self.arg.num_worker,
            drop_last=True,
            worker_init_fn=init_seed)

Is 'shuffle=False' the flag?

非常感谢您的耐心解答!我有两个疑问:
一是您说的‘’the training dataset ‘’是什么呢?是说数据集中用来训练的那一部分吗?比如ntu的数据集,2/3用来训练,1/3用来测试,您是指用来训练的那2/3吗? 然后把这2/3的数据的2/3用来训练(即/scratch/project_2001654/wp/data/ntu/xview/train_data_joint1.npy),这2/3的数据的1/3用来搜索(即/scratch/project_2001654/wp/data/ntu/xview/train_data_joint2.npy)。是这个意思吗?
二是set a flag at the training part是什么意思呢? 是将gcn_search.py文件中的下列代码中的shuffle设置为False吗?
if self.arg.phase == 'train':
self.data_loader['train'] = torch.utils.data.DataLoader(
dataset=Feeder(**self.arg.train_feeder_args),
batch_size=self.arg.batch_size,
shuffle=False,
num_workers=self.arg.num_worker,
drop_last=True,
worker_init_fn=init_seed)

期待能得到您的指点,非常感谢!

Yes, exactly as you said.

Best

/scratch/project_2001654/wp/data/ntu/xview/train_data_joint1.npy
/scratch/project_2001654/wp/data/ntu/xview/train_data_joint2.npy
I want to run gcn_search.py, and the above two files are needed.
The ‘readme.md‘ file shows that ' Devide the training data into trainging set and searching parts, as it is for a general NAS'. But I still do not know how. Is there any code for this? Sorry to bother you. I would be greatly appreciated if you could give me some advice.

Hello, have you solved it? How exactly is it done? I am still a little confused, I hope you can give me some tips.