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

Inception V3网络结构
类型 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
这个网络相对比较复杂,这里使用tf.contrib.slim辅助设计这个网络。contrib.slim中的一些功能和组件可以大大减少设计inception net的代码量,我们这里只需要少量的代码即可构建好有42层深的inception V3。

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

Tensorflow 实现Google Inception Net

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

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

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net


Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

Tensorflow 实现Google Inception Net

相关文章:

  • 2021-08-04
  • 2021-05-08
  • 2021-12-03
  • 2022-01-18
  • 2021-05-07
  • 2021-12-10
  • 2021-03-30
  • 2021-09-03
猜你喜欢
  • 2022-02-01
  • 2021-12-19
  • 2021-06-23
  • 2021-12-26
  • 2021-06-11
  • 2021-12-04
  • 2021-08-26
相关资源
相似解决方案