【问题标题】:Sudden spike in validation loss验证损失突然飙升
【发布时间】:2018-01-05 09:30:43
【问题描述】:

所以我在一个小数据集上进行二值图像分类每个类别包含 250 个图像,我使用迁移学习,使用 Resn​​et50 作为基础网络架构并在它之上我添加了 2 个隐藏层和 1 个最终输出层,经过 20 个 epoch 的训练,我看到损失在初始 epoch 突然增加,我无法理解其背后的原因。

网络架构 -

image_input = Input(shape=(224, 224, 3))
model = ResNet50(input_tensor=image_input,include_top=True, weights='imagenet')
last_layer = model.get_layer('avg_pool').output
x = Flatten(name='flatten')(last_layer)
x = Dense(1000, activation='relu', name='fc1000')(x)
x = Dropout(0.5)(x)
x = Dense(200, activation='relu', name='fc200')(x)
x = Dropout(0.5)(x)
out = Dense(num_classes, activation='softmax', name='output')(x)
custom_model = Model(image_input, out)

我正在使用 binary_crossentropy,Adam 和默认参数

损失 -

准确度 -

【问题讨论】:

    标签: python keras conv-neural-network resnet


    【解决方案1】:

    对于如此小的数据类别,绝对有可能过度拟合确实会增加您的数据集大小并检查一下,如果可能的话使用数据增强

    【讨论】:

    • 我尝试进行数据扩充,但没有任何显着变化,尽管我尝试将批量大小从 8 更改为 3 并获得了完美的损失图,但我仍然不知道为什么但是我认为这可能是因为梯度停留在局部最小值中。
    • 如果您使用 SGD,减少批量大小会有所帮助,是的,这就是原因之一
    猜你喜欢
    • 2023-03-13
    • 2021-07-13
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2018-07-08
    相关资源
    最近更新 更多