| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Pytorch profiler with tensorboard. -> 正文阅读 |
|
[人工智能]Pytorch profiler with tensorboard. |
前言:你将学到什么?注意:以下所有的内容均来自pytorch官网,建议想了解profiler的同学可以直接上官网查询。 这篇教程针对的是PyTorch1.8+以上版本新更新的profiler API,目的是实时记录电脑CPU和GPU的工作情况,以更好的提升模型的性能,解决模型遇到的瓶颈。 学习步骤如下:
一、准备数据集和模型Tips:可以跟着我的代码一步一步复制到你的编辑器内,也可以直接复制文末总代码到编辑器内。代码内容一样。 首先Import必要的包,并完成对CIFAR10 dataset的加载和格式转换。
之后准备我们的模型:
定义训练每一批数据的训练步骤:
二、使用profiler来记录执行的事件Profiler常见的一些参数如下:
在本例中, 我们设置 wait=1, warmup=1, active=3, repeat=2, profiler将会跳过第一次的iteration, 在第二次训练时候开始warm up, 并记录下接下来三次的iterations, 之后profiler跟踪将变为可用,并调用on_trace_ready(如果设置)。总的来说,这个循环重复两次。在TensorBoard插件中,每个循环都被称为“Span”。 在Wait步骤中,profiler被禁用。在warm up步骤中,profiler开始跟踪,但结果被丢弃。这是为了减少分析开销。分析开始时的开销很高,很容易导致分析结果出现偏差。在active步骤中,profiler工作并记录事件。
在这个例子中,我们使用torch.profiler.tensorboard_trace_handler来为Tensorboard生成结果文件。在Profiling后,结果文件将保存到’/log/resnet18’目录。将此目录指定为logdir参数,以分析TensorBoard中的profile(配置)。
代码如下:
三、执行profiler执行以上代码 ,配置结果会被保存在’/log/resnet18’文件夹中。 四、使用TensorBoard来观察结果并对模型性能做出分析
Vscode端可以打开Tensorboard,可以看到如下情况: 整个网页展示了模型性能的一个总结,例如中间的GPU Summary显示了你的GPU的配置,和GPU的使用情况等等。 下面的Step Time Breakdown显示了执行每部分所花费的世界,可以看出来,在这个例子中,dataloader花费的时间最多。 最后:总结当然,还有一些更多的用法值得去探索,你们可以在官方教程中去探索。因为看完了教程,发现并没有自己需要的东西(只利用pytorch计算param和flops),所以就不再添加那些高级方式来分析模型性能了。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 18:26:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |