ShuaiZ1037 / bnn-xnor-bireal

Pytorch implementations of the BNN, XNOR-Net and BiReal-Net
15 stars 1 forks source link

请问xnor-net里面的K的实现在哪里? #1

Open helloyongyang opened 2 years ago

helloyongyang commented 2 years ago

您好,刚刚看了您的代码,有个不理解的地方。在xnor-net的里面有个K,它是根据激活值算出来的,想问一下这一部分的实现在哪里呀?我只看到了对激活求sign操作,然后就直接卷积了。

ShuaiZ1037 commented 2 years ago

您好,刚刚看了您的代码,有个不理解的地方。在xnor-net的里面有个K,它是根据激活值算出来的,想问一下这一部分的实现在哪里呀?我只看到了对激活求sign操作,然后就直接卷积了。

您好,非常感谢对这个项目感兴趣,关于您的问题,在XNOR-NET论文里面,确实是计算了激活值的伸缩因子k,不过在实际代码实现的时候,我没有计算激活值的k,只计算了权重的k,主要参考了如下两个代码,同样没有计算激活值的k: https://github.com/jiecaoyu/XNOR-Net-PyTorch https://github.com/liuzechun/Bi-Real-net

实验表明,激活值不计算k,影响不大,您可以实验验证一下。

helloyongyang commented 2 years ago

谢谢回复! 我在xnor-net++论文( https://bmvc2019.org/wp-content/uploads/papers/0121-paper.pdf )里面,发现了这个表述: “Note, that as the calculation of K is relatively expensive due to the fact that it is recomputed at each forward pass, it is common to drop it at the expense of a slight drop in accuracy. ” 应该也能说明问题。

ShuaiZ1037 commented 2 years ago

谢谢回复! 我在xnor-net++论文( https://bmvc2019.org/wp-content/uploads/papers/0121-paper.pdf )里面,发现了这个表述: “Note, that as the calculation of K is relatively expensive due to the fact that it is recomputed at each forward pass, it is common to drop it at the expense of a slight drop in accuracy. ” 应该也能说明问题。

好的,感谢评论,祝您好运!