资源网站源码,织梦 旅游网站模板,网站 多少篇文章才能上线,帝国做视频网站文章目录目录1.VGG结构2.VGG结构解释3.3*3卷积核的优点4.VGG的muti-scale方法5.VGG的应用目录
1.VGG结构 LeNet5用大的卷积核来获取图像的相似特征 AlexNet用99、1111的滤波器 VGG 巨大的进展是通过依次采用多个 33 卷积#xff0c;模仿出更大的感受野#xff08;r…
文章目录目录1.VGG结构2.VGG结构解释3.3*3卷积核的优点4.VGG的muti-scale方法5.VGG的应用目录
1.VGG结构 LeNet5用大的卷积核来获取图像的相似特征 AlexNet用99、1111的滤波器 VGG 巨大的进展是通过依次采用多个 3×3 卷积模仿出更大的感受野receptive field效果例如 5×5 与 7×7。 这些思想也被用在更多的网络架构中如 Inception 与 ResNet。
VGG16的效果最好 VGG16 的第 3、4、5 块block256、512、512个 3×3 滤波器依次用来提取复杂的特征。其效果就等于是一个带有 3 个卷积层的大型的 512×512 大分类器。 2.VGG结构解释
(1)VGG全部使用33卷积核、22池化核不断加深网络结构来提升性能。 (2)A到E网络变深参数量没有增长很多参数量主要在3个全连接层。 (3)训练比较耗时的依然是卷积层因计算量比较大。 (4)VGG有5段卷积每段有2~3个卷积层每段尾部用池化来缩小图片尺寸。 (5)每段内卷积核数一样越靠后的段卷积核数越多64–128–256–512–512。
3.3*3卷积核的优点 4.VGG的muti-scale方法 LRN层作用不大。越深的网络效果越好。11的卷积也是很有效的但是没有33的卷积好大的卷积核可以学习更大的空间特征
1*1的卷积的作用 1.实现跨通道的交互和信息整合
1×1的卷积层可能引起人们的重视是在NIN的结构中论文中林敏师兄的想法是利用MLP代替传统的线性卷积核从而提高网络的表达能力。文中同时利用了跨通道pooling的角度解释认为文中提出的MLP其实等价于在传统卷积核后面接cccp层从而实现多个feature map的线性组合实现跨通道的信息整合。
2.进行卷积核通道数的降维
降维 dimension reductionality 。比如一张500 X500且厚度depth为100 的图片在20个filter上做1X1的卷积那么结果的大小为500X500X20。加入非线性。卷积层之后经过激励层1X1的卷积在前一层的学习表示上添加了非线性激励 non-linear activation 提升网络的表达能力
5.VGG的应用
VGG9、VGG11、VGG13、VGG16、VGG19
出现了梯度消失的问题 只在第一个卷积name’block1_conv1’后面加了BatchNormalization就解决了
def VGG16(input_shape(64,64,3), classes6):X_input Input(input_shape)block 1X Conv2D(filters4, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock1_conv1)(X_input)X BatchNormalization(axis3)(X)X Conv2D(filters4, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock1_conv2)(X)X MaxPooling2D((2,2), strides(2,2), nameblock1_pool)(X)block 2X Conv2D(filters8, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock2_conv1)(X)X BatchNormalization(axis3)(X)X Conv2D(filters8, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock2_conv2)(X)X MaxPooling2D((2,2), strides(2,2), nameblock2_pool)(X)block 3X Conv2D(filters16, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock3_conv1)(X)X Conv2D(filters16, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock3_conv2)(X)X Conv2D(filters16, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock3_conv3)(X)X MaxPooling2D((2,2), strides(2,2), nameblock3_pool)(X)block 4X Conv2D(filters32, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock4_conv1)(X)X Conv2D(filters32, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock4_conv2)(X)X Conv2D(filters32, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock4_conv3)(X)X MaxPooling2D((2,2), strides(2,2), nameblock4_pool)(X)block 5X Conv2D(filters32, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock5_conv1)(X)X Conv2D(filters32, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock5_conv2)(X)X Conv2D(filters32, kernel_size(3,3), strides(1,1), activationrelu, paddingsame, nameblock5_conv3)(X)X MaxPooling2D((2,2), strides(2,2), nameblock5_pool)(X)flatten, fc1, fc2, fc3X Flatten(nameflatten)(X)X Dense(256, activationrelu, namefc1)(X)X Dense(256, activationrelu, namefc2)(X)X Dense(classes, activationsoftmax, namefc3)(X)model Model(inputsX_input, outputsX, nameVGG16)return model