在复现论文的时候发现需要用谷歌的inception-v4先提取出物体的特征,网上找了一圈也没有现成的,所以就打算自己实现一下。这里实现的是论文中的pure inception blocks。
inception-v4主体就是论文中的figure 9,然后figure 3,4,5,6,7,8分别是对主体中每层细节的展开。从图中可以看到,每层中用到的操作都是卷积,池化和filter_concat,所以在实现上还是比较好实现的。
选择keras是为了快速复现这一论文,keras更加抽象,相较于tensorflow是一个更高层的神经网络API。这里我们用的keras后端是tensorflow-gpu。下面就开始具体的实现步骤。
首先定义卷积函数:
def conv(input, n_filter, row, col, strides=(1,1),
padding='same', bias=False):
x = Convolution2D(n_filter, [row,col],strides=strides,
padding=padding, use_bias=bias)(input)
x = BatchNormalization(axis=c