1) 过去的研究都是用一些老的网络,比如VGG,resnet,alexnet等,这些网络已经落伍了,市场上已经不怎么用了;
2) 过去用的数据集也小,比如CIFAR10这类,包含的图片种类和数量都太少,不太适合商业应用;
3) 压缩老的网络的技术手段不再适用于最新的网络,比如像squeezeNet网络,它就比alexnet网络小50倍,但是能达到和alexnet一样的精度;
4) 以往的类似resnet的网络,有skip连接的,并不适合在FPGA上部署,因为增加了数据迁移;
5) 以往网络的卷积核较大,如3x3,5x5等,也不适合硬件加速;
6) 以前网络压缩集中于老的那些网络,这些网络本身就有很大的冗余,所以压缩起来很容易,而最新的网络比如ShuffleNet等压缩起来就没有那么容易了,但是这样的报道很少;
总之,意思就是之前的文章都捡软柿子捏,而且比较落后了。那么我们来看看在这样狂妄口气之下的成果如何。 2. shuffleNetV2到DiracDeltNetshuffleNetV2是新发展出来的一个神经网络,它的网络模型中参数更小(比VGG16小60倍),但是精度只比VGG16低2%。shuffleNet不再像resnet将skip连接的数据求和,而是skip连接的数据进行concat,这样的操作降低了加法操作。Skip连接可以扩展网络的深度和提高深层网络精度。但是加法skip不利于FPGA实现,一个是加法消耗资源和时间,另外一个是skip数据增加了迁移时间。Concat连接也和加法skip有相同的功能,增加网络深度和精度。作者对shuffleNetV2网络结构进行了更有利于FPGA部署的微调。有以下三个方面:1) 将所有3x3卷积(包括3x3depth-wise卷积)都替换为shift和1x1卷积。这样替换是能够降低feature map数据的迁移,比如3x3的卷积每个图像数据要使用3次,而1x1只需要搬移一次,降低了逻辑复杂性,也提高了运算速度。Shift操作是将某个范围的pixel移动到中间作为结果,这样的操作减少了乘法运算次数。这种替换会导致精度降低,但是可以减少FPGA运算次数。
2) 将3x3的maxpooling操作降低为2x2的。
3) 调整了channel的顺序来适应FPGA。
![ac3f8068-c415-eb11-8da9-e4434bdf6706.png](http://p04.5ceimg.com/content/ac3f8068-c415-eb11-8da9-e4434bdf6706.png)
![ae3f8068-c415-eb11-8da9-e4434bdf6706.png](http://p03.5ceimg.com/content/ae3f8068-c415-eb11-8da9-e4434bdf6706.png)
![b03f8068-c415-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/b03f8068-c415-eb11-8da9-e4434bdf6706.png)
![b13f8068-c415-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/b13f8068-c415-eb11-8da9-e4434bdf6706.png)
1)1x1卷积
2)2x2的ma-pooling
3)shift
4)shuffle和concat
所以硬件架构上也变得很简洁,作者在文章中说两个人用HLS只做了一个月。![b43f8068-c415-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/b43f8068-c415-eb11-8da9-e4434bdf6706.png)
![b73f8068-c415-eb11-8da9-e4434bdf6706.png](http://p03.5ceimg.com/content/b73f8068-c415-eb11-8da9-e4434bdf6706.png)
![b83f8068-c415-eb11-8da9-e4434bdf6706.png](http://p03.5ceimg.com/content/b83f8068-c415-eb11-8da9-e4434bdf6706.png)
1. Yifan Yang, Q.H., Bichen Wu, Tianjun Zhang, Liang Ma, Giulio Gambardella, Michaela Blott, Luciano Lavagno, Kees Vissers, John Wawrzynek, Kurt Keutzer, Synetgy Algorithm-hardware Co-design for ConvNet Accelerators on Embedded FPGAs. arXiv preprint, 2019.
![ba3f8068-c415-eb11-8da9-e4434bdf6706.jpeg](http://p02.5ceimg.com/content/ba3f8068-c415-eb11-8da9-e4434bdf6706.jpeg)
![bb3f8068-c415-eb11-8da9-e4434bdf6706.jpeg](http://p03.5ceimg.com/content/bb3f8068-c415-eb11-8da9-e4434bdf6706.jpeg)