标签:http googl 提升 png 通过 通道 port 实例化 维度
GoogLeNet和AlexNet/VGGNet这类依靠加深网络结构的深度的思想不完全一样。GoogLeNet在加深度的同时做了结构上的创新,引入了一个叫做Inception的结构来代替之前的卷积加激活的经典组件。GoogLeNet在ImageNet分类比赛上的Top-5错误率降低到了6.7%。
在GoogLeNet之前,大多数提升网络性能的方式为增加网络深度,GoogLeNet采用增加网络宽度来提升网络性能,在相同计算量下获取更多的特征信息,从而提升训练结果
GoogLeNet中的基础卷积块叫作Inception块,得名于同名电影《盗梦空间》(Inception)。Inception块在结构比较复杂,如下图所示:
Inception块内有4条并行的线路,分别为1x1、3x3、5x5卷积层和应该3x3的最大池化层,其中中间两个线路先用1x1卷积来减少通道数,以减少参数的个数,池化层通过1x1卷积层来改变通道个数,4条线路都padding都采用same方式,确保四条线路宽高一致。最后我们将每条线路的输出在通道维度上进行连结,病作为下一层的输入。
(a)是未加入1x1卷积的inception模块,(b)是加入了1x1 卷积的inception模块。
我们以3x3卷积线路为例,假设输入的特征图大小为(28x28x192),输出特征图的通道数是128:
(a)图中该线路的参数量为:3x3x192x128 = 221184
(b)图中加入1x1卷积后通道为96,再送入3x3卷积中的参数量为:(1x1x192x96)+(3x3x96x128)=129024
对比可知,加入1x1卷积后参数量减少了。
在tf.keras中实现Inception模块,各个卷积层卷积核的个数通过输入参数来控制,如下所示:
import
import tensorflow as tf
# 定义Inception模块
class Inception(tf.keras.layers.Layer):
# 输入参数为各个卷积核个数
def __init__(self,c1,c2,c3,c4):
super().__init__()
# 线路1:1x1的卷积核,激活函数为relu,padding为same
self.p1_1 = tf.keras.layers.Conv2D(c1,kernel_size=1,activition=‘relu‘,padding=‘same‘)
# 线路2:1x1的卷积核后接3x3的卷积核,就函数为relu,padding为same
self.p2_1 = tf.keras.layers.Conv2D(c2[0],kernel_size=1,activition=‘relu‘,padding=‘same‘)
self.p2_2 = tf.keras.layers.Conv2D(c2[1],kernel_size=3,activition=‘relu‘,padding=‘same‘)
# 线路3: 1x1的卷积核后接5x5的卷积核,激活函数为relu,padding为same
self.p3_1 = tf.keras.layers.Conv2D(c3[0],activition=‘relu‘,padding=‘same‘)
self.p3_2 = tf.keras.layers.Conv2D(c3[1],activition=‘relu‘,padding=‘same‘)
# 线路4: 3x3的池化层后接1x1的卷积层,激活函数为relu,padding为same
self.p4_1 = tf.keras.layers.Maxpool2D(pool_size=3,padding=‘same‘,strides=1)
self.p4_2 = tf.keras.layers.Conv2D(c4,kernel_size=1,activition=‘relu‘,padding=‘same‘,)
# 完成前向传播
def call(self,x):
# 线路1
p1 = self.p1_1(x)
# 线路2
p2 = self.P2_2(self.p2_1(x))
# 线路3
p3 = self.p3_2(self.p3_1(x))
# 线路4
p4 = selg.p4_2(self.p4_1(x))
return tf.concat([p1,p2,p3,p4],axis=-1)# axis -1 选择最后一个维度
指定通道数,对Inception模块进行实例化:
Inception(64, (96, 128), (16, 32), 32)
GoogLeNet主要由Inception模块构成,如下图所示:
整个网络架构我们分为五个模块,每个模块之间使用步幅为2的3×3最大池化层来减小输出高宽
googLeNet的网络设计
标签:http googl 提升 png 通过 通道 port 实例化 维度
原文地址:https://www.cnblogs.com/hzzhu/p/14805886.html