1.回顾一些InceptionNet的基本思想:
分组卷积:
2.与残差网络类似,可以将分组卷积的Inception结构用一个函数封装起来,以后只需要调用这个函数即可:
(1)将VGGNet的结构删掉:
(2)实现Inception结构:
定义一个inception block:
再看各个分支是如何去计算的:
首先定义一个scope防止运行冲突:
定义分支的卷积:
11的卷积:
33和5*5的卷积:
maxpooling的分支:
然后将这四个分支拼接起来:
需要先计算出来pad等数值的大小的大小:
然后给maxpooling做padded
再将padded_pooling和卷积层拼接起来:
拼接的维度是第4个维度,所以id就是3,:
拼接之后就可以返回了:
以上~Inception block就写完了~~~
3.在模型中使用Inception block这个函数:
inceptionNet的网络结构:
普通的卷积——池化——Inception block:
(1)将VGGNet的一些结构加回来:
加了一个普通的卷积层和一个普通的pooling层,可以使得图像大小变为原来的1/2
使用Inception block:
再经过一个池化层:
再复制一遍上面的过程:
展开池化层:
以上~一个Inception的结构就已经搭建完毕了 ~
4.训练结果: