简述
GoogLenet其实网络结构不是很复杂,之所以要总结这个代码实现,主要是想看一下Inception module在caffe中是怎么实现的。通过跟踪caffe代码,对Inception module也有了更深入的理解。
本文主要总结Inception module的实现,其他网络层的实现都是以前的网络差不多。
具体实现
本文以Inception(3a)为例,简述在caffe中是怎么实现的,首先Inception(3a)的输入是前一层网络max pooling的输出,在输入到Inception(3a)之前,会由一个split_layer对数据进行分流,其实就是重新构造4个指针指向原来的数据,四个指针的值存储在top[4]中,代码实现如下:
for(int i = 0; i < top.size(); ++i)
{
top[i]->SharedData(*bottom[0]);
}
数据分流过后就是对每一个数据路径执行操作,