学习目标:
- 知道AlexNet网络结构
- 能够利用AlexNet完成图像分类
2012年,AlexNet横空出世,该模型的名字源于论⽂第⼀作者的姓名AlexKrizhevsky 。AlexNet使⽤了8层卷积神经⽹络,以很⼤的优势赢得了
ImageNet 2012图像识别挑战赛。它⾸次证明了学习到的特征可以超越⼿⼯设计的特征,从⽽⼀举打破计算机视觉研究的⽅向。
1.AlexNet的网络架构
AlexNet与LeNet的设计理念⾮常相似,但也有显著的区别,其⽹络架构如下图所示:
该网络的特点是:
- AlexNet包含8层变换,有5层卷积和2层全连接隐藏层,以及1个全连接输出层(softmax)
- AlexNet第⼀层中的卷积核形状1111,第⼆层中的卷积核形状减⼩到55,之后全采⽤33。所有的池化层窗⼝⼤⼩为33、步幅为2的最⼤池化。
- AlexNet将sigmoid激活函数改成了ReLU激活函数,使计算更简单,⽹络更容易训练
- AlexNet通过dropOut来控制全连接层的模型复杂度。
- AlexNet引⼊了⼤量的图像增强,如翻转、裁剪和颜⾊变化,从⽽进⼀步扩⼤数据集来缓解过拟合。
在tf.keras中实现AlexNet模型:
import tensorflow as tf
# 搭建网络
net = tf.keras.Sequential(
[
# 第一个卷积层:卷积核个数是96,卷积核大小是11,步长是4
tf.keras.layers.Conv2D(filters=96, kernel_size=11, strides=4, activation='relu'),
# 池化,都是3*3,步