Open y0ngjaenious opened 1 year ago
@zhouzx17 Please help @y0ngjaenious find our processing scripts.
And one more thing! How did you feed ENAS and NB301 data to GCN? Did you do the line-graph conversion trick on those datasets? And did you use shared GCN on each cell in a cell group(and concat the final embedding?)?
Thank you for reading this issue. I am very appreciated of your good research.
Many thanks for your interest!
And one more thing! How did you feed ENAS and NB301 data to GCN? Did you do the line-graph conversion trick on those datasets?
No, we didn't do the line-graph conversion trick. We build TA-GATES based on our previous study GATES. I personally recommend reading GATES, it gives a very simple-to-understand description of predictor-based NAS as well as the idea of designing proper encoding for data-processing NN architectures. GATES designs corresponding GCNs for "op-on-the-edge" graphs (such as graphs in ENAS, NB301) as well as "op-on-the-node" graphs (such as graphs in NB101). Different code is used to implement the GCN for these two types of spaces. For example, this is the TA-GATES code for architectures in NB301, and this is the TA-GATES code for architectures in NB101. Despite the separate implementation, the underlying "idea" of encoding an architecture is the same, that is, to mimic the information processing (an operation --- no matter whether it is on an edge or on a node --- is modeled as a "transformation" of the propagating information) in GATES, and to also mimic the back-propagating information processing in TA-GATES.
We compare with the "line-graph conversion + GCN" solution on NB201 in both our GATES and TA-GATES papers. You can refer to the GATES paper (search for "line graph" keyword in the paper) for the discussion.
And did you use shared GCN on each cell in a cell group(and concat the final embedding)?
Yes, we use a shared GCN for different cell types (i.e., the normal cell and the reduce cell), and then concatenate the final embedding. The concatenation is implemented by a simple reshape here.
If you have any further questions, please do not hesitate to ask.
Dear TA-GATES authors,
I'm trying to figure out how your pre-processed pickle file of ENAS, NB301 dataset for TA-GATES is formed. Can you provide pre-processing codes for theses datasets?
Cheers.
Hi, y0ngjaenious, you can find our preprocess scripts in here.
Specifically, these two scripts can help to convert the original format of architectures' to the adjacency matrix in ENAS and NB301 search spaces.
Let us know if you have other questions.
@walkerning Oh, what I mean by "GCN" is your baseline method GCN[10]! How can you feed architectures into it?
@zhouzx17 Thank you for your reply! That will be very helpful for me!
BTW, I really appreciate your fast reply!! :)
Oh, what I mean by "GCN" is your baseline method GCN[10]! How can you feed architectures into it?
For the "GCN" encoder on NB301 and ENAS, we implement it following the cited NeurIPS'19 work, here is the implementation https://github.com/walkerning/aw_nas/blob/master/aw_nas/evaluator/arch_network.py#L128
This encoder cannot get the same representation for isomorphic graphs, we have discussed two of its simple failure cases in the GATES's appendix Fig.1.
Dear TA-GATES authors,
I'm trying to figure out how your pre-processed pickle file of ENAS, NB301 dataset for TA-GATES is formed. Can you provide pre-processing codes for theses datasets?
Cheers.