赞
踩
2012年 AlexNet 在 ImageNet 上显著的降低了分类错误率,深度神经网络进入迅速发展阶段。在2014年牛津大学机器人实验室尝试构建了更深的网络,文章中称为"VERY DEEP CONVOLUTIONAL NETWORKS",如VGG16,有16层,虽然现在看起来稀疏平常,但与 AlexNet 相比,翻了几倍。这个阶段,主要是没有解决网络太深梯度反向传播消失的问题,且受限于GPU等硬件设备的性能,所以深度网络不易于训练。不过,VGG 显然是当时最好的图像分类模型,斩获 ILSVRC 比赛冠军。顺便说下,2012年之后,标准数据集主要是ImageNet,到后来又有微软的COCO数据集。
https://arxiv.org/pdf/1409.1556.pdf
文章发在 ICLR( International Conference on Learning Representations) 2015会议上,截止目前引用次数为27081
https://github.com/uestcsongtaoli/vgg_net
这里重点介绍VGG16
上图上半部分相对直观,下半部分是一种常见的普通网络结构的表示方法,下半部分最后一层不应该是4096,应该是分类问题的类别数目 num_classes。
该模型可以简单分为5个 stage,(我猜测这种思想来自于 AlexNet 的5层卷积,可以参考我写的关于AlexNet的文章结构介绍部分)每层两卷积核池化组成,最后接3层全连接用于分类。
先定义 conv block 包括卷积、BatchNormalization 和 Activation:
def conv_block(layer, filters, kernel_size=(3, 3), strides=(1, 1), padding='same', name=None):
x = Conv2D(filters=filters,
kernel_size=kernel_size,
strides=strides,
padding=padding,
kernel_initializer="he_normal",
name=name)(layer)
x = BatchNormalization()(x)
x = Activation('relu')(x)
return x
x = conv_block(input_layer, filters=64, kernel_size=(3, 3), name="conv1_1_64_3x3_1"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。