Tensorflow 实现Google Inception Net
Posted 河南骏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tensorflow 实现Google Inception Net相关的知识,希望对你有一定的参考价值。
Inception V1参数少但效果好的目的有两点:第一,参数越多模型越庞大,需要提供模型学习的数据量就越大,而目前高质量的数据非常昂贵。第二,参数越多,耗费的计算资源也会更大。Inception V1参数少但效果好的原因处理模型层数更深、表达能力更强外,还有两点:一是去除了最后逇全连接层,用全局平均池化层(即将图片尺寸变为1x1)来取代它,去除全连接层后模型训练更快并且减轻了过拟合。二是Inception V1中精心设计的inception module提高了参数的利用效率。
类型 | kernel 尺寸/步长(或注释) | 输入尺寸 |
卷积 | 3x3 / 2 | 299x299x3 |
卷积 | 3x3 / 1 | 149x149x32 |
卷积 | 3x3 / 1 | 147x147x32 |
池化 | 3x3 / 2 | 147x147x64 |
卷积 | 3x3 / 1 | 73x73x64 |
卷积 | 3x3 / 2 | 71x71x80 |
卷积 | 3x3 / 1 | 35x35x192 |
Inception 模块组 | 3个 Inception Module | 35x35x288 |
Inception 模块组 | 5个 inception Module | 17x17x768 |
Inception 模块组 | 3个 Inception Module | 8x8x1280 |
池化 | 8x8 | 8x8x2048 |
线性 | logits | 1x1x2048 |
Softmax | 分类输出 | 1x1x1000 |
Inception v3 的inception Module 有35x35,17x17和8x8三种不同的结构,具体如下:
slim.arg_scope,是一个非常有用的工具,可以给函数的参数自动赋予某些默认值。
因为代码比较复杂就,LZ就懒的敲了,有一段截图,关于本网络的,我贴出来,分享一下:
以上是关于Tensorflow 实现Google Inception Net的主要内容,如果未能解决你的问题,请参考以下文章
吴裕雄--天生自然python Google深度学习框架:Tensorflow实现迁移学习
如何自己实现简单的Google深度学习框架TensorFlow?
实现迁徙学习-《Tensorflow 实战Google深度学习框架》代码详解
如何自己实现简单的Google深度学习框架TensorFlow?