bilylee / SiamFC-TensorFlow

A TensorFlow implementation of the SiamFC tracker
MIT License
358 stars 112 forks source link

关于conv2 conv4 conv5实现,为什么要spilt,然后创建两个conv层进行处理? #37

Closed Rheelt closed 6 years ago

Rheelt commented 6 years ago

您好,感谢您的贡献! 我想请问一下convolutional_alexnet.py中关于conv2 conv4 conv5实现,为什么要spilt,然后创建两个conv层进行处理? 谢谢!

infinitas-loop commented 6 years ago

这应该是AlexNet中采用的方式,当时是为了节省显存。你可以参考AlexNet的论文

bilylee commented 6 years ago

你好,

这一操作叫做 group convolution,在这里 group 数为 2. 使用的原因有两方面,一方面是 @infinitas-loop 指出的,为了节省显存和计算量,另一方面,也能节省参数量防止过拟合。事实上,如果把 group convolution 换成普通的卷积操作,SiamFC 效果会下降。当然,如果有更多训练数据,可以考虑换掉。

Rheelt commented 6 years ago

谢谢!