Tensorflow 实现Google Inception Net

Posted 河南骏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tensorflow 实现Google Inception Net相关的知识,希望对你有一定的参考价值。

Inception V1参数少但效果好的目的有两点:第一,参数越多模型越庞大,需要提供模型学习的数据量就越大,而目前高质量的数据非常昂贵。第二,参数越多,耗费的计算资源也会更大。Inception V1参数少但效果好的原因处理模型层数更深、表达能力更强外,还有两点:一是去除了最后逇全连接层,用全局平均池化层(即将图片尺寸变为1x1)来取代它,去除全连接层后模型训练更快并且减轻了过拟合。二是Inception V1中精心设计的inception module提高了参数的利用效率。

Inception V3网络结构
类型kernel 尺寸/步长(或注释)输入尺寸
卷积3x3  /  2299x299x3
卷积3x3 / 1149x149x32
卷积3x3 / 1147x147x32
池化3x3 / 2147x147x64
卷积3x3 / 173x73x64
卷积3x3 / 271x71x80
卷积3x3 / 135x35x192
Inception 模块组3个 Inception Module35x35x288
Inception 模块组5个 inception Module17x17x768
Inception 模块组3个 Inception Module8x8x1280
池化8x88x8x2048
线性logits1x1x2048
Softmax分类输出1x1x1000
这个网络相对比较复杂,这里使用tf.contrib.slim辅助设计这个网络。contrib.slim中的一些功能和组件可以大大减少设计inception net的代码量,我们这里只需要少量的代码即可构建好有42层深的inception V3。

Inception v3 的inception Module 有35x35,17x17和8x8三种不同的结构,具体如下:

slim.arg_scope,是一个非常有用的工具,可以给函数的参数自动赋予某些默认值。

因为代码比较复杂就,LZ就懒的敲了,有一段截图,关于本网络的,我贴出来,分享一下:



以上是关于Tensorflow 实现Google Inception Net的主要内容,如果未能解决你的问题,请参考以下文章

吴裕雄--天生自然python Google深度学习框架:Tensorflow实现迁移学习

如何自己实现简单的Google深度学习框架TensorFlow?

实现迁徙学习-《Tensorflow 实战Google深度学习框架》代码详解

如何自己实现简单的Google深度学习框架TensorFlow?

Tensorflow和pytorch安装(windows安装)

Google深度学习笔记 TensorFlow实现与优化深度神经网络