mm系列权重文件瘦身
瘦身脚本:
(会在resnet50.pth文件的同级目录下生成一个resnet50_thin.pth)
import os
import torch
root_dir = os.getcwd()
def thin_pth():
pth_path = 'resnet50_mmcls.pth'
state_dict = torch.load(os.path.join(root_dir, pth_path))
work_dir = os.path.dirname(pth_path)
pth_name = str(os.path.basename(pth_path)).split('.')[0]
out_path = os.path.join(root_dir, work_dir, f'{pth_name}_thin.pth')
torch.save(state_dict['state_dict'], out_path)
print("Thin pth successful")
print('| save path:', out_path)
if __name__ == '__main__':
thin_pth()
原理:
我们训练完的mmcls,mmdet等模型,保存好的训练权重pth是比较大的。并且里边有两个参数是我们推理的时候用不到的。

例如mmcls中,我们训练完保存好的resnet50_mmlab.pth文件,它有三个键值对,分别是:
meta:训练时的环境配置
state_dict:我们模型的参数
optimizer:优化器的参数
我们在推理过程中其实只需要state_dict就可以了,里边保存的是我们训练好的权重参数。
瘦身结果展示:

我们能够看到瘦身前180m,瘦身后92m,跟pytorch官方的resnet50预训练权重差不多大。
mm系列权重文件瘦身的更多相关文章
- Android性能优化系列之apk瘦身
Android性能优化系列之布局优化 Android性能优化系列之内存优化 为什么APK要瘦身.APK越大,在下载安装过程中.他们耗费的流量会越多,安装等待时间也会越长:对于产品本身,意味着下载转化率 ...
- Docker系列之镜像瘦身(五)
前言 本节我们来讲讲在我们在构建镜像过程中不出问题,同时使得最后所构建的镜像文件大小尽可能最小,温馨提示:文中大图均可点击放大查看详细信息. 缓存(cache) Docker的优势之一在于提供了缓存, ...
- 如何给你的Android 安装文件(APK)瘦身
如何给你的Android 安装文件(APK)瘦身 本文翻译自:Putting Your APKs on Diet 原作者:Cyril Mottier Android的apk文件越来 ...
- 怎样给你的Android 安装文件(APK)瘦身
本文源地址:怎样给你的Android 安装文件(APK)瘦身 Android的apk文件越来越大了这已经是一个不争的事实. 在Android 还是最初版本号的时候,一个app的apk文件大小也还仅仅有 ...
- 性能优化7--App瘦身
1. 前言 如果你对App优化比较敏感,那么Apk安装包的大小就一定不会忽视.关于瘦身的原因,大概有以下几个方面: 对于用户来说,在功能差别不大的前提下,更小的Apk大小意味更少的流量消耗,也意味着更 ...
- Apk大瘦身
Android的apk文件越来越大了这已经是一个不争的事实.在Android 还是最初版本的时候,一个app的apk文件大小也还只有2 MB左右,到了现在,一个app的apk文件大小已经升级到10MB ...
- Android 瘦身之道 ---- so文件
Android 瘦身之道 ---- so文件 [TOC] 1. 前言 目前Android 瘦身只有几个方面可以入手,因为apk的结构就已经固定了. res 目录下的资源文件.(通常是压缩图片,比如 矢 ...
- WinSxS文件夹瘦身
WinSxS文件夹瘦身 2014-5-8 18:03:32来源:IT之家作者:阿象责编:阿象 评论:27 刚刚,我们分享了如何用DISM管理工具查看Win8.1 WinSxS文件夹实际大小.对于Win ...
- 转】[MySQL优化]为MySQL数据文件ibdata1瘦身
原博文出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/page/2/ 感谢! [MySQL优化]为MySQL数据文件ibda ...
- SpringBoot Jar包瘦身 - 跟大文件说再见!
前言 SpringBoot部署起来配置非常少,如果服务器部署在公司内网,上传速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼.就是 编译出来的 Jar 包很大,如果工程引入了许多开 ...
随机推荐
- Dungeon Master 题解
这道题的题意简单来说:就是在3D迷宫里找出口,也就是三维地图,需要用到三维数组 由于本人写代码极易出错,所以在输入三维数组的时候修改了c(column,即列)的值,重复定义了没看到==,后面改成定义成 ...
- Beckhoff 倍福 漏洞-整理(持续更新)
工控漏洞整理网站 http://ivd.winicssec.com/index.php/Home/Search/search.html?keyword=Beckhoff
- 并发编程 --- CAS原子操作
介绍 CAS(Compare And Swap) 是一种无锁算法的实现手段,中文名称为比较并交换.它由 CPU 的原子指令实现,可以在多线程环境下实现无锁的数据结构. 原理 CAS 的原理是:它会先比 ...
- jQuery 框架
jQuery 框架 目录 jQuery 框架 一. 概述 二. jQuery 安装引用 2.1 安装 2.2 本地导入使用 2.3 jQuery CDN引入 三. jQuery基本语法 四. 查找标签 ...
- modalError.vue 错误提示框 vue2 iview
需求 一个错误提示框,后台需要有换行,默认没有换行,做一个支持换行的全局错误提示函数. 注意 代码只展示原理,直接不能使用,里面有getAc,有需要参考 https://www.cnblogs.com ...
- C++ kmalloc、kzalloc、vmalloc的区别
1. kmalloc 函数原型: void *kmalloc(size_t size, gfp_t flags): kmalloc() 申请的内存位于物理内存映射区域,而且在物理上也是连续的,它们与真 ...
- KingbaseES 表级设置autovacuum有关参数和触发机制
前言 在表级别设置autovacuum有关参数清理表的死亡元祖可以有效规避autovacuum触发全局默认阈值的高峰.例如,如果想让表的autovacuum任务更频繁,可以在表级设置更小的触发auto ...
- KingbaseES 统计信息收集器没有响应问题分析
统计信息收集器没有响应/Stats collector is not responding 问题现象: kingbase数据库日志提示:统计信息收集器没有响应/Stats collector is n ...
- #容斥,广搜#nssl 1458 HR的疑惑 nssl 1460 逛机房
nssl 1458 HR的疑惑 题目 求\([1\sim n]\)中有多少个正整数\(x\)满足 \[\sqrt[y]{x}\in N^{+},y>1 \] 其中\(n\leq 10^{18}\ ...
- #排列组合,dp#AT2000 [AGC002F] Leftmost Ball
洛谷题目传送门 ATCODER传送门 分析 设\(dp[i][j]\)表示放完\(i\)个白球和\(j\)种有颜色的球的情况 首先\(dp[i][j]\)显然可以从\(dp[i-1][j]\)转移, ...