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

thop计算模型复杂度(params,flops)

 thop安装

-pip install thop在线安装失败

-离线安装

github网址: 

pytorch-OpCounter:Count the MACs / FLOPs of your PyTorch model. - GitCode

python setup.py install

 测试:

from options import config as c
import os
os.environ["CUDA_VISIBLE_DEVICES"] = c.os_environ
import torch.nn
from modules.NET import Net
from utils.utils import load
from utils.yml import parse_yml, dict_to_nonedict
import numpy as np
from thop import profile
from modules.DCTGate_fast import DCT_transform

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

# --------------------noise set------------------------------
# read noise_config
yml_path = c.noise_opt_yml_path
option_yml = parse_yml(yml_path)
# convert to NoneDict, which returns None for missing keys
noise_opt = dict_to_nonedict(option_yml)

# -------------------MODEL load---------------------------
model_path = c.load_model_path
net = Net(noise_opt, device).to(device)
load(model_path, net)

# -----------------MODEL input-----------------------
cover = torch.randn(1, 3, c.cropsize_val, c.cropsize_val).to(device)
secret = torch.Tensor(np.random.choice([-0.5, 0.5], (cover.shape[0], c.input_message_length))).to(device)

dct_trans = DCT_transform(image_size=c.cropsize_val, block_size=8).to(device)
cover_dct = dct_trans(cover)

# ------------cal: params, FLOPS-----------
flops, params = profile(net, (cover, secret, cover_dct))
print(f'\nflops: {flops}, params: {params}\n')
print('the flops is {}G, the params is {}M\n'.format(round(flops / (10 ** 9), 2), round(params / (10 ** 6), 2)))




http://www.kler.cn/a/315229.html

相关文章:

  • Java基础面试题19:解释什么是Servlet链
  • ARM异常处理 M33
  • GitLab的安装与卸载
  • 如何实现圆形头像功能
  • gitlab代码推送
  • 分数阶傅里叶变换
  • 云计算实训50——Kubernetes基础命令、常用指令
  • 怎样把PPT上顽固的图标删了
  • Html css水平居中+垂直居中+水平垂直居中的方法总结
  • WPF 自定义路由事件
  • HTTP的基本格式
  • 整合多方大佬博客以及视频 一文读懂 servlet
  • go/函数
  • Java笔试面试题AI答之单元测试JUnit(5)
  • 3. 什么是连接池?为什么使用数据库连接池?
  • AgentScope中带有@功能的多Agent组对话
  • Github Wiki 超链接 转 码云Gitee Wiki 超链接
  • hcia-openEuler V1.0师资题库-试卷2
  • MySQL数据库专栏(九)内联查询
  • 如何做系统架构?从动态系统思考的角度
  • 线性规划------ + 案例 + Python源码求解(见文中)
  • idea2021git从dev分支合并到主分支master
  • C#基础(14)冒泡排序
  • Go 并发模式:扩展与聚合的高效并行
  • MATLAB中typecast函数用法
  • 【JVM】概述