我目前正在使用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
层会对网络有害吗
批量标准化将有助于协方差的偏移,并且当您在批处理方面培训新数据时,这对网络来说是一件好事。没有什么比BatchNormalization更重要的了,只是放在每一层激活之后
相关问题 更多 >
编程相关推荐