目录

  举例

  在Inception module上的应用

  参考资料


可以减少计算量,可以增加非线性判别能力

举例

假设有1个高为30、宽为40,深度为200的三维张量与55个高为5、宽为5、深度为200的卷积核same卷积,步长=1,则结果是高为30、宽为40、深度为55的三维张量,如图所示:

该卷积过程的乘法计算量大约为5*5*200*30*40*55=330000000,这个计算量很大。

接着,我们可以考虑第二种卷积过程,先利用1*1的卷积核在深度上降维,然后升维:

上述卷积过程的计算量大约为:

第一步:1*1*200*30*40*20=4800000

第二步:5*5*20*30*40*55=33000000

总的乘法计算量大约为:37800000

显然,得到同样的最终的结果,采用第二种方式,即首先在深度方向上降维,第二种的计算量是第一种的37800000/330000000=0.11。

 

第二步中的中间层也可以叫做瓶颈层,因为他是整个网络中最小的,你可能会问:你这样大幅地缩小模型的规模会不会影响到网络的性能?事实证明只要合理构建瓶颈层,你既可以显著缩小瓶颈层规模,又不会降低网络性能,从而大量减少了计算。

另外,因为又引入了一层结构,激活函数可以引入额外的非线性能力.

 返回目录

 

在Inception module上的应用

在googlenet中的inception module中就使用了这种1*1的卷积核做降维,以减少计算量和增加非线性判别能力

 返回目录

 

参考资料

《图解深度学习与神经网络:从张量到TensorFlow实现》_张平

inceptionV1-Going Deeper with Convolutions

《深-度-学-习-核-心-技-术-与-实-践》

吴恩达深度学习

 返回目录

 

posted on 2019-08-20 10:10  知识天地  阅读(491)  评论(0编辑  收藏  举报