GO 调度器学习笔记

GO 调度器

非常全面的一篇讲解:https://learnku.com/articles/41728

一些有意义的图片

调度流程
GMP调度模型
调度器生命周秋

一些理解

  1. M和P的绑定关系是1:1,但M的个数不少于P的个数;

  2. M中当前运行的G进行阻塞调用时,M会解除和P的绑定关系,此时P会唤醒一个空闲的M或者创建一个新的M进行绑定;当原来的M阻塞调用结束时,会优先寻找之前的P进行绑定,如果失败会去寻找一个空闲的P绑定,如果没有空闲的P,M上的G会被放入到全局队列中,M进入休眠;

  3. 本地队列存储G的个数有上限,256;

  4. 每个goroutine最多占用10ms的cpu时间片;

  5. work stealing机制

    runtime.schedule() {
    // only 1/61 of the time, check the global runnable queue for a G. 仅 1/61 的时间, 检查全局运行队列里面的 G.
    // if not found, check the local queue. 如果没找到, 检查本地队列.
    // if not found, 还是没找到 ?
    //     try to steal from other Ps. 尝试从其他 P 偷.
    //     if not, check the global runnable queue. 还是没有, 检查全局运行队列.
    //     if not found, poll network. 还是没有, 轮询网络.
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在深度学习中,学习率是一个非常重要的超参数,它决定了模型在训练过程中参数的调整幅度。如果学习率太小,模型收敛速度会很慢,而如果学习率太大,则可能会导致模型无法收敛。 PyTorch提供了多种学习调度(learning rate scheduler),可以根据训练过程中的表现自动调整学习率,进而提高模型的训练效果。 下面介绍一些常见的学习调度: 1. StepLR StepLR是一种简单的学习调度,它可以在给定的epoch数上降低学习率。例如,在第10个epoch时将学习率降低为原来的0.1倍: ```python import torch.optim as optim from torch.optim.lr_scheduler import StepLR optimizer = optim.SGD(model.parameters(), lr=0.1) scheduler = StepLR(optimizer, step_size=10, gamma=0.1) ``` 2. ReduceLROnPlateau ReduceLROnPlateau是一种基于模型表现的学习调度,它可以根据模型在验证集上的表现自动调整学习率。例如,在验证集上连续5个epoch的loss没有下降时,将学习率降低为原来的0.1倍: ```python import torch.optim as optim from torch.optim.lr_scheduler import ReduceLROnPlateau optimizer = optim.SGD(model.parameters(), lr=0.1) scheduler = ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=5, verbose=True) ``` 3. CosineAnnealingLR CosineAnnealingLR是一种基于余弦函数的学习调度,可以让学习率在训练过程中逐渐降低,并在指定的epoch数后重新开始。例如,在训练过程中,将学习率从0.1降低到0.01,然后重新开始: ```python import torch.optim as optim from torch.optim.lr_scheduler import CosineAnnealingLR optimizer = optim.SGD(model.parameters(), lr=0.1) scheduler = CosineAnnealingLR(optimizer, T_max=10, eta_min=0.01) ``` 以上是三种常见的学习调度,可以根据需要选择合适的调度来优化模型的训练效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值