StevenGrove / vtpack

code base for vision transformers
Apache License 2.0
34 stars 3 forks source link

关于网络的训练 #3

Open 1171000410 opened 1 year ago

1171000410 commented 1 year ago

作者您好,我理解deit_dge.py中,应该是使用了 Dynamic Grained Encoder。但是在代码dge.py中,sparse_train默认是false,并且这个参数在DynamicGrainedEncoder初始化的时候也没改,那么训练的时候走的是这个循环吗? https://github.com/StevenGrove/vtpack/blob/38d5af0c3d9181177496619605ed1eb66c52445e/vtpack/layers/dge.py#L69

期待您的回复!

StevenGrove commented 1 year ago

是的, 训练时候开启sparse_train会省显存和时间, 但性能会下降, 默认是关闭的

1171000410 commented 1 year ago

作者您好,我还想请教一下,不开sparse_train的话,和原文中主要有什么区别呢?

StevenGrove commented 1 year ago

不开sparse_train会在训练时候启用所有的待选分支, 然后用gumbel softmax后的gate分数和分支输出做attention, 这样可以使gate分数收敛的更好

1171000410 commented 1 year ago

作者您好,这几天尝试着使用你们的方法。我有个疑惑,不开sparse_train,设置split_size = [1],去掉router,那么是不是就是baseline的结构一样了?