迁移学习中的批处理规范化

2024-04-18 11:58:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用MobileNet V2体系结构进行迁移学习。在分类之前,我在顶部添加了几个致密层。我应该在这些层之间添加BatchNormalization

base_model = MobileNetV2(weights='imagenet', include_top=False, input_shape=(200,200,3))
x = base_model.output
x = GlobalAveragePooling2D(name="Class_pool")(x)
x = Dense(512, activation='relu')(x)
x = BatchNormalization()(x)
x = Dropout(.4)(x)
x = Dense(1024, activation='relu')(x)
x = BatchNormalization()(x)
x = Dropout(.4)(x)
x = Dense(512, activation='relu')(x)
x = BatchNormalization()(x)
x = Dropout(.4)(x)
x = Dense(512, activation='relu')(x)
x = BatchNormalization()(x)
X = Dense(20,activation='softmax')(x)

我以前训练过这个网络,但没有这些批处理规范化层,并且很难获得好的精度。在尝试了学习速度和冻结层的多种组合后,我只取得了半成功。我希望这会有所帮助 太多的BatchNormalization层会对网络有害吗


Tags: 网络basemodel体系结构分类activationdropoutdense
1条回答
网友
1楼 · 发布于 2024-04-18 11:58:27

批量标准化将有助于协方差的偏移,并且当您在批处理方面培训新数据时,这对网络来说是一件好事。没有什么比BatchNormalization更重要的了,只是放在每一层激活之后

相关问题 更多 >