当前位置: 首页 > news >正文

商场网站开发网站建设套餐报价方案

商场网站开发,网站建设套餐报价方案,wordpress 主题推荐,北京广告公司0、基础提示 1、FLOPS是用来衡量硬件算力的指标,FLOPs用来衡量模型复杂度。 2、MAC 一般为 FLOPs的2倍 3、并非FLOPs越小在硬件上就一定运行更快,还与模型占用的内存,带宽,等有关 1、FLOPs计算 神经网络参数量。用于衡量模型大…

0、基础提示

1、FLOPS是用来衡量硬件算力的指标,FLOPs用来衡量模型复杂度。
2、MAC 一般为 FLOPs的2倍
3、并非FLOPs越小在硬件上就一定运行更快,还与模型占用的内存,带宽,等有关

1、FLOPs计算

神经网络参数量。用于衡量模型大小。一般卷积计算方式为:
F L O P s = 2 ∗ H W ( K h ∗ K w ∗ C i n + 1 ) C o u t FLOPs = 2*HW(Kh*Kw*Cin+1)Cout FLOPs=2HW(KhKwCin+1)Cout
其中,
H,W表示该层卷积的高和宽
Kh,Kw表示卷积核的高和宽
2 表示一次乘操作 + 一次加操作
+1 表示bias操作

2、统计工具-THOP

源代码链接

2.1 安装

pip install thop

pip install --upgrade git+https://github.com/Lyken17/pytorch-OpCounter.git

2.2 基础使用

from torchvision.models import resnet50
from thop import profile
model = resnet50()
input = torch.randn(1, 3, 224, 224)
macs, params = profile(model, inputs=(input, ))

2.3 定义自己的规则

class YourModule(nn.Module):# your definitiondef count_your_model(model, x, y):# your rule hereinput = torch.randn(1, 3, 224, 224)
macs, params = profile(model, inputs=(input, ), custom_ops={YourModule: count_your_model})

2.4 模型包含多个输入

修改input就好

from torchvision.models import resnet50
from thop import profile
model = resnet50()
input1 = input2 = torch.randn(1, 3, 224, 224)
macs, params = profile(model, inputs=(input1, input2,))

3、 统计工具-torchstat

这个是我更中意的,因为他统计信息更加丰富,包含params,memory, Madd, FLOPs等。缺点在于已经不更新了,且不支持多输入,好在我们可以修改代码支持。
源代码链接

3.1 安装

pip install torchstat

3.2 基础使用

from torchstat import stat
import torchvision.models as models
model = models.resnet18()
stat(model, (3, 224, 224))

3.3 输入多个Input

将torchstat 库安装目录下的 torchstat/statistics.py 中按如下修改:

class ModelStat(object):def __init__(self, model, input_size, query_granularity=1):assert isinstance(model, nn.Module)# 删除输入长度为3的限制# assert isinstance(input_size, (tuple, list)) and len(input_size) == 3assert isinstance(input_size, (tuple, list))self._model = modelself._input_size = input_sizeself._query_granularity = query_granularity

将torchstat 库安装目录下的 torchstat/model_hook.py 中按如下修改:

class ModelHook(object):def __init__(self, model, input_size):assert isinstance(model, nn.Module)assert isinstance(input_size, (list, tuple))self._model = model# 原始是通过单个输入的尺寸,再构建输入tensor,我们可以修改为在网络外构建输入tensor后直接送入网络# self._input_size = input_sizeself._origin_call = dict() # sub module call hookself._hook_model()# x = torch.rand(1, *self._input_size) # add module duration timeself._model.eval()# self._model(x)self._model(*self._input_size)

使用时候测试代码

from torchstat import stat
import torchvision.models as models
model = models.resnet18()
input1, input2 = torch.rand(1, 3, 224, 224), torch.rand(1, 3, 224, 224)
stat(model, (input1, input2))

大致改动就是这样了,还有什么bug可以自己稍微修改一下哈。另外找修改地方可以看报错提示torchstat安装路径修改。

4、fvcore

stat有个很麻烦的问题是,他不支持transformer,因此包含transformer的网络可以使用fvcore,他是Facebook开源的一个轻量级的核心库。

4.1、 安装

pip install fvcore

4.2、 基础使用

from fvcore.nn import FlopCountAnalysis, parameter_count_table
# 创建网络
model = MobileViTBlock(in_channels=32, transformer_dim=64, ffn_dim=256)# 创建输入网络的tensor
tensor = (torch.rand(1, 32, 64, 64),)# 分析FLOPs
flops = FlopCountAnalysis(model, tensor)
print("FLOPs: ", flops.total())# 分析parameters
print(parameter_count_table(model))

参考来自:https://zhuanlan.zhihu.com/p/583106030

欢迎交流补充

http://www.yayakq.cn/news/772831/

相关文章:

  • 建设银行行号网站查询是什么俄语在线网站制作
  • 51制作工厂网站什么是seo标题优化
  • 简述网站建设评估的指标有哪些珠海网络推广
  • 艺术设计教学资源网站建设标准软装设计收费标准
  • 海洋网络做网站不负责wordpress新站注意事项
  • 厦门免费建立企业网站下沙建设局网站
  • 成功的网站必须具备的要素游戏工作室招聘信息
  • 深圳外文网站制作北京南昌网站建设
  • 海淀建设网站给公司做网站的公司
  • 网站如何收费建设网站征集图片的通知
  • 什么网站做博客好哪个网站有做电箱电柜的图纸
  • 做好网站维护下面什么不是用于制作网页的软件
  • wordpress视频主题吾爱破解版威海网站优化推广
  • 只做正品的购物网站六安有哪些做网站的公司
  • 开发东莞网站制作公司腾讯企业邮箱扫码登录
  • 做网站找八埏福建建站公司
  • 北京网站推广展示型网站有哪些功能
  • 网站判断手机跳转代码163企业邮箱注册怎么注册
  • 浙江省建设厅继续教育网站首页公司注册资金最低是多少
  • 长沙做官方网站网站开发 教学目标
  • 葫芦岛建设工程信息网站网站首页修改
  • 网站内页做排名asp.net网站本机访问慢
  • 自己做网站难么鹰潭市城乡建设局网站
  • 网站大全浏览器wordpress安装图片
  • 网站外链建设有利于增加网站收录北京搬家公司哪个好
  • 论坛网站建设软件专业网站建设好不好
  • 中企动力做网站做付费网站站长全自动年赚30万
  • 移动wap站点为什么企业需要建设网站
  • 香奈儿网站建设策划书wordpress文章图片全屏浏览
  • 电子商务网站的规划与建设论文北京海淀建设银行数据中心