Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

有关代码的一些问题 #20

Open
SZLGZYD opened this issue Apr 15, 2021 · 4 comments
Open

有关代码的一些问题 #20

SZLGZYD opened this issue Apr 15, 2021 · 4 comments

Comments

@SZLGZYD
Copy link

SZLGZYD commented Apr 15, 2021

您好,非常赞赏你们的工作,有两个地方不太理解,想请教一下。
1 论文中讲到需要有2 个更新的参数,一个是在head layer 里用于选择从前面哪个通道的block中接收输入,还有一个是 stack layer里操作的选择。但是在代码里,却有3个参数,分别是 betas, head_alphas, stack_alphas ,多出来了一个是有关本block输出可以去向哪些block的,这样设置的作用是什么?
2 数据集被分成了train和valid两个部分,在weights更新的步骤里用的是train数据,在arch更新的步骤里用的是valid数据,但是在infer时用的还是valid数据,这部分数据不应该已经被网络学习过了吗?是不是应该用其他的数据再去做infer?
这是我想不明白的2个问题,想请您帮忙解答一下,哪里理解地不对请您指正。

@JaminFong
Copy link
Owner

您好,感谢您关注我们的工作。

  1. betas用于决定本block输出可以去向哪些block,等价于“用来选择从前面哪个通道的block中接收输入”,输入输出维度的转化问题;head_alphas 和 stack_alphas分别用于决定head layer和stacking layer里的operation type
  2. 搜索时的val dataset是从原始training dataset中分出来,最终retrain衡量指标用的是原始val dataset,两者并不重合

@SZLGZYD
Copy link
Author

SZLGZYD commented Apr 26, 2021

感谢您的回复

@SZLGZYD
Copy link
Author

SZLGZYD commented Apr 26, 2021

还有一个小问题,您 search.py 搜出来的网络结果中inference部分会产生一个分类的准确率;按照您搜出来的这个网络架构重新训练分类网络也会得到一个分类准确率,这两个准确率有没有直接关系?

@JaminFong
Copy link
Owner

搜索空间中直接inference得到的accuracy和最终训练的accuracy有一定相关性,但是由于differentiable方法可以看作一个approximation的过程,这个相关性不一定会非常的一致。super network中网络的accuracy和最终训练的accuracy之间的ranking问题在one-shot NAS的方法中会经常被提到和研究,因为其经常依赖于采样精度进行网络导出,一些one-shot方法对ranking问题做出了相应改进和论证,可作参考。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants