为了账号安全,请及时绑定邮箱和手机立即绑定

如何改进 val_loss 和 val_acc

如何改进 val_loss 和 val_acc

当年话下 2022-11-01 14:02:02
我正在训练卷积神经网络(使用 for segmentation)。而且我对验证结果有疑问(val_loss, val_acc-in network for segmentation 正在使用 term val_dice_coef),因为只有很小的变化,并且与 -and 相比,结果没有acc 改善。dice_coefloss我正在将此代码示例与自己的优化器一起使用 - 我的参数:total_number_of_data = 3547 #val + training dataepochs = 400image_size = 128batch_size = 2val_data_size = 400opt = optimizers.RMSprop(learning_rate=0.0000001, decay=1e-6)350历元后的结果:epoch |     dice_coef      |        loss         |      val_loss      |   val_dice_coef------------------------------------------------------------------------------------------1     | 0.5633156299591064 | 0.43668392300605774 | 0.4752978980541229 | 0.5247021317481995350   | 0.9698152542114258 | 0.03018493764102459 | 0.3346560299396515 | 0.6653439402580261我应该怎么办?
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

他们不是任何特殊的解决方案,您必须在这里尝试所有可能的情况。但是我告诉您最大宗师遵循的更一般的过程。


def build_lrfn(lr_start=0.00001, lr_max=0.0008, 

               lr_min=0.00001, lr_rampup_epochs=20, 

               lr_sustain_epochs=0, lr_exp_decay=.8):

    lr_max = lr_max * strategy.num_replicas_in_sync


    def lrfn(epoch):

        if epoch < lr_rampup_epochs:

            lr = (lr_max - lr_start) / lr_rampup_epochs * epoch + lr_start

        elif epoch < lr_rampup_epochs + lr_sustain_epochs:

            lr = lr_max

        else:

            lr = (lr_max - lr_min) * lr_exp_decay**(epoch - lr_rampup_epochs - lr_sustain_epochs) + lr_min

        return lr


    return lrfn

lrfn = build_lrfn()

lr_schedule = tf.keras.callbacks.LearningRateScheduler(lrfn, verbose=1)



history = model.fit(

    train_dataset, 

    epochs=EPOCHS, 

    callbacks=[lr_schedule],

    steps_per_epoch=STEPS_PER_EPOCH,

    validation_data=valid_dataset

)

对于更多优化器,我总是关注这个链接


在我看来,亚当最近最适合你的模型


查看完整回答
反对 回复 2022-11-01
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信