最近在做Research Project的时候,发现有些小工具很好用,记录在此。

1. 准确的FLOPS 计算

网上开源的很多计算flops的工具只支持计算PyTorch内置层的flops,不能有效计算出自定义操作的flops。Facebook日前开源了一个面向PyTorch的CV工具包,内置了​flops_count​函数,支持细粒度的flops计算,包括​torch.einsum​,​torch.bmm​等操作均可计算。同时还支持自定义一个operation白名单,用来控制计算那些操作的FLOPS。

Example见: https://github.com/facebookresearch/fvcore/blob/master/tests/test_flop_count.py

2. 参数量计算

这个比较常用了,记录在此,方便查阅

def params_count(model):"""Compute the number of parameters.Args:model (model): model to count the number of parameters."""return np.sum([p.numel() for p in model.parameters()]).item()

3. 画出计算图

PyTorch 1.4版本内置了tensorboard,支持​add_graph ​,可以将我们定义的模型的计算图可视化出来,可以直观的看到每一层的size,和数据流向,为模型调试和验证提供了很好的帮助

参见文档: https://pytorch.org/docs/stable/tensorboard.html

v2-700bd0fe19d1beb46398585f4773cf3b_b.jpg

4. 相关性分析

TensorFlow里有一个很好用的高维特征分析工具Projector, 内置TSNE和PCA。最新的PyTorch也加入了这个支持。可以先去http://projector.tensorflow.org/ 体验一下online版的。

这个功能支持2D/3D的分析,同时可以交互式的点选,十分酷炫好用。

import torch
from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter("./visualization")cat_features = np.loadtxt("category_features.txt")
cat_labels = torch.load("category_labels.txt")writer.add_embedding(cat_features, cat_labels)
writer.close()

v2-7da4b6078b88f0fcac033932fcdbdc2d_b.jpg

有需求才会有发现,开源社区的轮子真的强大,期待以后也能给开源社区贡献轮子。

pytorch 模型可视化_PyTorch Tips(FLOPs计算/参数量/计算图可视化/相关性分析)相关推荐

  1. 关于 FLOPS、FLOPs、参数量的相关计算

    关于 FLOPS.FLOPs.参数量的相关计算 一.FLOPS 二.FLOPs 2.1 2D 卷积运算 FLOPs Parameters 2.2 全连接层 FLOPs Parameters 2.3 B ...

  2. R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战

    R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战 目录 R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战

  3. R语言使用plot函数可视化数据、使用type参数自定义设置可视化的类型(数据点和线关系的类型)、设置type参数为s则为阶梯状显示

    R语言使用plot函数可视化数据.使用type参数自定义设置可视化的类型(数据点和线关系的类型).设置type参数为s则为阶梯状显示 目录

  4. 卷积层计算量(FLOPS)和参数量的计算

    1.卷积参数量的计算,若卷积层的输入featuremap的维度为Cin×Hin×Win,卷积核的大小为K1×K2, padding=P1×P2, stride=S1×S2,卷积核(filter)的数量 ...

  5. 【读点论文】A ConvNet for the 2020s,结合swin transformer的结构设计和训练技巧调整resnet网络,在类似的FLOPs和参数量取得更好一点的效果

    A ConvNet for the 2020s Abstract 视觉识别的"咆哮的20年代"始于视觉transformer(ViTs)的问世,它迅速取代ConvNets成为最先进 ...

  6. 苏黎世华人博士提出模型SwinIR,只用33%的参数量就碾压图像修复领域sota

    来源:新智元 [导读]参数量和模型的性能有绝对关系吗?苏黎世华人博士提出SwinIR模型,实验结果告诉你,越小的模型还可能更强!SwinIR使用Transformer力压CNN,又在图像修复领域屠榜, ...

  7. YOLOv5首发改进最新CVPR2023主干FasterNet系列:实测私有数据集mAP有效涨点,同时降低参数量|为更快的神经网络追求更高的 FLOPS,参数量下降,超越其他轻量化模型

  8. 【YOLOv5-6.x】模型参数量param及计算量FLOPs解析

    文章目录 前言 参数量param和计算量FLOPs简介 参数量 计算量 YOLOv5计算模型参数 训练和验证输出模型参数不同的原因分析 输出模型参数结果(以YOLOv5s-coco2017为例) 参数 ...

  9. 卷积神经网络参数量和计算量内存计算

    卷积神经网络参数量和计算量内存计算 参数量 计算量 内存 参数量 每一次卷积的参数量和特征图的大小无关,仅和卷积核的大小,偏置及BN有关. 1.每个卷积层的参数量,+1表示偏置: Co x (Kw x ...

最新文章

  1. 刚过国家线计算机考研报哪个好,考研估分刚过了去年国家线,今年上岸还有希望吗?有!...
  2. 「杂谈」如何系统性地学习生成对抗网络GAN
  3. 阿里云 Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR invalid password
  4. windows备份0x80070422错误解决方法
  5. 32位md5解密_冰蝎特征检测及报文解密
  6. git上托管的代码如何部署在阿里云上_居然仅用浏览器搞定Spring Boot应用的开发与部署...
  7. [转载] python 去除字符串的标点符号 用_Python成为专业人士笔记–String字符串方法
  8. java 镶嵌创建线程_请教一个 Java 多线程嵌套使用的问题
  9. cad2020 开始_中望cad2020发布,附简体中文免费版安装教程
  10. 新hp设备无法连接到计算机,联想的台式机,用的win7系统,无法装惠普1108打印机驱动,一直显示新设备现已连接,然后无限循环!!!...
  11. 一份完整的app产品运营推广方案,app推广运营的方法(二
  12. 安卓APP的字体大小设置不受系统字体大小的影响
  13. 编写iptables模块实现不连续IP地址的DNAT-POOL
  14. Euraka服务注册篇
  15. 游戏运营相关名词及解释
  16. eSDK 华为ICT能力开放平台
  17. AMD的cpu vmware装黑苹果报错:客户机操作系统已禁用 CPU,请关闭或重置虚拟机
  18. win10已达到计算机的连接数量最大值,win10系统共享提示“达到连接数目限制”的办法...
  19. go分布式存储,rs纠删码
  20. FPGA给DSP6678复位

热门文章

  1. 分布式事务:分布式事务原理概述
  2. Vue.js 组件注册
  3. MySQL索引知识总结
  4. 五种应该避免的代码注释
  5. mysql的collation区分大小写设置
  6. Java程序员从笨鸟到菜鸟之(二十九)javascript对象的创建和继承实现
  7. 计算机网络探究二之利用PHP实现登录验证之后上网
  8. boost源码剖析之:泛型函数指针类boost::function(rev#3)
  9. Deep Learning论文笔记之(五)CNN卷积神经网络代码理解
  10. 为什么全局变量不好?[翻译]