设为首页 加入收藏

TOP

学习笔记TF032:实现Google Inception Net(二)
2017-09-30 17:48:03 】 浏览:3988
Tags:学习 笔记 TF032: 实现 Google Inception Net
rmalization参数字典,定义衰减系数decay 0.997,epsilon 0.001,updates_collections为tf.GraphKeys.UPADTE_OPS,字典variables_collections中beta、gamma设None,moving_mean、moving_variance设batch_norm_var_collection。

slim.agr_scope,函数参数自动赋默认值。with slim.arg_scope([slim.conv2d, slim.fully_connected], weights_regularizer=slim.l2_regularizer(weight_decay)) ,对[slim.conv2d, slim.fully_connected]两个函数参数自动赋值,参数weights_regularizer值默认设为slim.l2_regularizer(weight_decay)。不需要每次重复设置参数,只需要修改时设置。

嵌套一个slim.arg_scope,卷积层生成函数slim.conv2d参数赋默认值,权重初始化器weights_initializer设trunc_normal(stddev),激活函数设ReLU,标准化器设slim.batch_norm,标准化器参数设batch_norm_params,返回定义好的scope。

定义函数inception_v3_base,生成Inception V3网络卷积。参数inputs 输入图片数据tensor,scope 函数默认参数环境。定义字典表end_points ,保存关键节点。slim.agr_scope,设置slim.conv2d、slim.max_pool2d、slim_avg_pool2d函数参数默认值,stride设1,padding设VALID。非Inception Module卷积层,slim.conv2d创建卷积层,第一参数输入tensor,第二参数输出通道数,第三参数卷积核尺寸,第四参数步长stride ,第五参数padding模式。第一卷积层输出通道数32,卷积核尺寸3x3,步长 2,padding模式VALID。

非Inception Module卷积层,主要用3x3小卷积核。Factorization into small convolutions思想, 用两个1维卷积模拟大尺寸2维卷积,减少参数量,增加非线性。1x1卷积,低成本跨通道特征组合。第一卷积层步长2,其余卷积层步长1。池化层尺寸3x3?步长2重叠最大池化。网络输入数据惊寸299x299x3,经过3个步长2层,尺寸缩小为35x35x192,空间尺寸大降低,输出通道增加很多。一共5个卷积层,2个池化层,实现输入图片数据尺寸压缩,抽象图片特征。

三个连续Inception模块组。

第1个Inception模块组3个结构类似Inception Module。

第1 Inception模块组第1个Inception Module,名称Mixed_5b。slim.arg_scope设置所有Inception模块组默认参数,所有卷积层、最大池化、平均池化层步长设1,padding模式设SAME。设置Inception Module variable_scope名称Mixed_5b。4个分支,Branch_0到Branch_3。第一分支64输出通道1x1卷积。第二分支48输出通道1x1卷积,连接64输出通道5x5卷积。第三分支64输出通道1x1卷积,连接2个96输出通道3x3卷积。第四分支3x3平均池化,连接32输出通道1x1卷积。最后tf.concat合并4分支输出(第三维度输出通道合并),生成Inception Module最终输出。所有层步长为1,padding模型SAME,图片尺寸不缩小,维持35x35,通道数增加,4个分支通道数和64+64+96+32=256,最终输出tensor尺寸35x35x256。

第1 Inception模块组第2个Inception Module,名称Mixed_5c。步长1,padding模型SAME。4个分支,第四分支最后接64输出通道1x1卷积。输出tensor尺寸35x35x288。

第1 Inception模块组第3个Inception Module,名称Mixed_5d。输出tensor尺寸35x35x288。

第2个Inception模块组5个Inception Module。第2到第5Inception Module结构类似。

第2 Inception模块组第1个Inception Module,名称Mixed_6a。3个分支。第一分支384输出通道3x3卷积,步长2,padding模式VAILD,图片尺寸压缩为17x17。第二分支3层,64输出通道1x1卷积,两个96输出通道3x3卷积,最后一层步长2,padding模式VAILD,分支输出tensor尺寸17x17x96。第三分支3x3最大池化层,步长2,padding模式VAILD,分支输出tensor尺寸17x17x256。三分支输出通道合并,最终输出尺寸17x17x(384+96+256)=17x17x768。第2 Inception模块组5个Inception Module尺寸相同。

第2 Inception模块组第2个Inception Module,名称Mixed_6b。4个分支。第一分支192输出通道1x1卷积。第二分支3层,第一层128输出通道1x1卷积,第二层128输出通道1x7卷积,第三层192输出通道7x1卷积。Factorization into small convolutions思想,串联1x7卷积和7x1卷积,相当合成7x7卷积,参数量大减,减轻过拟合,增加一个激活函数,增强非线性特征变换。第三分支5层,第一层128输出通道1x1卷积,第二层128输出通道7x1卷积,第三层128输出通道1x7卷积,第四层128输出通道7x1卷积,第五层192输出通道1x7卷积。Factorization into small convolutions典范,反复拆分7x7卷积。第四分支3x3平均池化层,连接192输出通道1x1卷积。四分支合并,最终输出tensor尺寸17x17x(192+192+192+192+192)=17x17x768。

第2 Inception模块组第3个Inception Module,名称Mixed_6c。第二分支和第三分支前几个卷积层输出通道数从128变为160,最终输出通道数还是192。网络每经过一个Inception Module,即使输出尺寸不变,特征被重新精炼一遍,丰富卷积和非线性化,提升网络性能。

第2 Inception模块组第4个Inception Module,名称Mixed_6d。

第2 Inception模块组第5个Inception Module,名称Mixed_6e。Mixed_6e存储end_points,作Auxiliary Classifier输助模型分类。

第3个Inception模块组3个Inception Module。第2到第3Inception Module结构类似。

第3 Inception模块组第1个

首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇16、装饰器 下一篇Python-cookies

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目