上一讲我们讲述了Inception-V3卷积神经网络的基本模型及其实现原理,这一节我们将使用TensorFlow去实现Inception-V3这个卷积神经网络。使用TensorFlow实现Inception-V3卷积神经网络,InceptionModule将不同的卷积层通过并行连接的方式结合在一起。同时使用所有不同尺寸的过滤器,然后再将得到的矩阵拼接起来。如下图,Inception V3 模型总共有 46 层 ,由 11 个Inception模块组成。仔细数一数就会发现在Inception-V3 模型中有 96 个卷积层,如果还像实现VGGNet和AlexNet时那样使用conv2d()函数创建卷积层,那么将产生冗长的代码。
针对上述问题,TensorFlow 提供了 Slim 工具来更加简捷地实现一个卷积层。在熟悉了使用一般的卷积函数创建卷积层之后,我们现在介绍一下该工具介绍以及这个工具的使用。下面以 Inception V3 的最后一个 Module 为例,通过 Slim工具来完成对它的创建。tensorflow官方对它的描述是:此目录中的任何代码未经官方支持,可能会随时更改或删除。每个目录下都有指定的所有者。它旨在包含额外功能和贡献,最终会合并到核心TensorFlow中,但其接口可能仍然会发生变化,或者需要进行一些测试,看是否可以获得更广泛的接受。所以slim依然不属于原生tensorflow。slim是一个使构建,训练,评估神经网络变得简单的库。它可以消除原生tensorflow里面很多重复的模板性的代码,让代码更紧凑,更具有可读性。另外slim提供了很多计算机视觉方面的著名模型(VGG, Alex