【PyTorch基础】唯快不破:基于Apex的混合精度加速
APEX
如何安装
git clone https://github.com/NVIDIA/apex.git cd apex pip3 install --no-cache-dir --global-option="--pyprof" --global-option="--cpp_ext" --global-option="--cuda_ext" ./
google colab install apex amp
try: import apex except Exception: ! git clone https://github.com/NVIDIA/apex.git % cd apex !pip install --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" . % cd ..
code
import apex # OK
from apex import amp # error
error
ImportError: cannot import name 'amp' from 'apex' (unknown location)
add --user
!pip install --no-cache-dir --global-option="--pyprof" --global-option="--cpp_ext" --global-option="--cuda_ext" ./ --user
still wrong......
如何使用
1) 训练、保存模型
2) 测试
Pytorch使用
1) 训练

from torch.cuda.amp import autocast as autocast # 创建model,默认是torch.FloatTensor model = Net().cuda() optimizer = optim.SGD(model.parameters(), ...) # 在训练最开始之前实例化一个GradScaler对象 scaler = GradScaler() for epoch in epochs: for input, target in data: optimizer.zero_grad() # 前向过程(model + loss)开启 autocast with autocast(): output = model(input) loss = loss_fn(output, target) # Scales loss. 为了梯度放大. scaler.scale(loss).backward() # scaler.step() 首先把梯度的值unscale回来. # 如果梯度的值不是 infs 或者 NaNs, 那么调用optimizer.step()来更新权重, # 否则,忽略step调用,从而保证权重不更新(不被破坏) scaler.step(optimizer) # 准备着,看是否要增大scaler scaler.update()
2) 测试
参考
1. 【PyTorch】唯快不破:基于Apex的混合精度加速;
判断你的GPU是否支持FP16:支持的有拥有Tensor Core的GPU(2080Ti、Titan、Tesla等),不支持的(Pascal系列,1080Ti)就不建议折腾了。
【深度学习训练小技巧】1080ti与2080ti区别、apex与梯度累加、torch.no_grad
https://on-demand.gputechconf.com/gtc-taiwan/2018/pdf/5-1_Internal%20Speaker_Michael%20Carilli_PDF%20For%20Sharing.pdf
https://github.com/NVIDIA/apex/blob/master/apex/amp/lists/functional_overrides.py
https://github.com/NVIDIA/apex
https://nvidia.github.io/apex/index.html
https://www.cnblogs.com/yangwenhuan/p/11337203.html
https://developer.nvidia.com/automatic-mixed-precision
完
各美其美,美美与共,不和他人作比较,不对他人有期待,不批判他人,不钻牛角尖。
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】