tensorflow相关

ResNet的两个小细节

2016-06-30  本文已影响768人  Traphix

本文依据Ryan Dahl的tensorflow-resnet程序源码撰写。

论文里面有两个小细节需要在这里说明一下,其中一个依然有疑问,两个细节分别是conv层的down sampling方法和网络最后部分的global average pooling layer,下面分开说。

一、Conv层的 down sampling方法

ResNet网络里的第3、4、5个conv层的第一个卷积层负责Down sampling,stride为2,为了方便说明,再引入ResNet的结构,如下图:

ResNet Architecture
但每个conv层的第一层都是1×1的kernel啊,如果stride是2的话,那采集的数据信息岂不是丢失了一半难以理解

二、Global average pooling layer

直接贴上程序的源码吧,这个pooling太粗暴了

x = tf.reduce_mean(x, reduction_indices=[1, 2], name="avg_pool") 

x经过Global average pooling layer前后shape对比

before: (batch_size, 7, 7, 2048)
after : (batch_size, 2048)

直接算7×7 kernel的平均值,这样数据的细节也要丢失不少吧。。

上一篇下一篇

猜你喜欢

热点阅读