复现fcn过程中遇到的问题

第一步:确认输入输出有没有问题

学习率的问题:

用一个很小的学习率迭代几百次找到一个位置,然后再调到一个正常的lr。为了给模型找到一个比较好的初始化位置,为了避免模型只达到局部最优。
先普普通通用固定学习率,经过一段epochloss不下降之后,进行学习率衰减。

# 当验证集的损失连续3个epoch没有下降时,将学习率除以2,然后继续训练

	lr_counter = 0  # 初始化学习率计数器
    best_loss = float('inf')  # 初始化最佳loss值
    
    """
    for epoch in range(start_epoch+1, args.epochs+1):
        count_step = (epoch-1)*len(train_loader)
        # adjust_learning_rate(optimizer, epoch, args)

        mean_loss, lr = train_one_epoch(model, optimizer, train_loader, device, epoch, count_step,writer,
                                         print_freq=args.print_freq)
        val_info = evaluate_vgg(model, epoch, val_loader, device, writer, num_classes=num_classes)
     """  
     
        if mean_loss < best_loss:
            best_loss = mean_loss
            lr_counter = 0  # 重置学习率计数器
        else:
            lr_counter += 1  # 记录 loss 没有下降的 epoch 数

        # 根据学习率计数器的值进行学习率衰减
        if lr_counter > 2:
            adjust_learning_rate(optimizer, decay=0.5)
            lr_counter = 0  # 重置学习率计数器

def adjust_learning_rate(optimizer, decay):
    """decay learning rate to the last LR"""
    for param_group in optimizer.param_groups:
        param_group['lr'] = param_group['lr'] * decay

损失函数

pytorch中损失函数nn.CrossEntropyLoss与激活函数softmax的关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值