1. LeNet
LeNet卷积神经网络LeCun在1998年提出,卷积网络的开篇之作。通过共享卷积核减少了网络参数。
LeNet一共有5层网络,两个卷积计算层,3个全连接层。如图C1,C3,C5,F6,Output
代码实现:
class LeNet(Model):
def __init__(self):
super(LeNet, self).__init__()
self.c1 = Conv2D(filters=6, kernel_size=(5, 5), activation='sigmoid')
self.p1 = MaxPool2D(pool_size=(2, 2), strides=2)
self.c2 = Conv2D(filters=16, kernel_size=(5, 5), activation='sigmoid')
self.p2 = MaxPool2D(pool_size=(2, 2), strides=2)
self.flatten = Flatten() # 将来自卷积层的数据拉直
self.f1 = Dense(120, activation='sigmoid')
self.f2 = Dense(84, activation='sigmoid')
self.f3 = Dense(10, activation='softmax')
2. AlexNet
AlexNet诞生于2012年,Hinton的代表作之一,当年ImageNet竞赛的冠军。
AlexNet使用relu激活函数,提升了训练速度;使用Dropout缓解了过拟合。
共有8层,前5层是卷积层,后3层是全连接层。
代码实现:
class AlexNet(Model):
def __init__(self):
super(AlexNet, self).__init__()
self.c1 = Conv2D(filters=96, kernel_size=(3, 3))
self.b1 = BatchNorma