我正在用带有10百万个可训练参数的Resnet50模型微调5个类。数据大约有140,000个样本,其中20%用于验证。我可能会添加256个批处理,并且lr在前10个周期内从1e-5线性升温到3e-4,然后从那里进行余弦退火两次,再持续20个周期(10-30),我们将lr稳定在5e-6个周期30至40。每个类都有很多共同点,但容易区分。
所附图片说明了一切:在第10个时期之后,一切都在增加,包括损耗值,精度,精度和召回率(更不用说F1,top-1等了)。也稳步增加)。在实践中,该预测会比预期的产生很多误报,概率高达99%。
我想问一下这里到底发生了什么?
...
base_model = Resnet50(include_top=False,weights='imagenet',input_tensor=Input(shape=(224,224,3)))
x = base_model.output
x = GlobalMaxPooling2D(name='feature_extract')(x)
x = Dense(512,activation='relu')(x)
x = Dropout(0.5)(x)
x = Dense(len(classIDs),activation="softmax",name='all_classes_hatto')(x)
classifier = Model(inputs=base_model.input,outputs=[x])
...