Network Compression

听课(李宏毅老师的)笔记,方便梳理框架,以作复习之用。本节课主要讲了Network Compression,包括为什么要压缩,压缩的主要手段(pruning,knowledge distillation,parameter quantization,architecture design,dynamic computation)

引言

为什么要压缩模型?

  1. resource-constrained:因为有时需要把模型跑在计算资源有限的设备上,比如手表
  2. lower latency:比如智能驾驶,把资料从车传到云端又传回来,sensor需要非常及时的响应
  3. privacy:把资料传到云端,则云端系统持有者就能看到我们的资料

在这里插入图片描述

Network Pruning

概念

有些没有工作的参数可以剪掉,不然会占资源。就像人刚出生时没什么神经连接,但是6岁时就很多,再长大到14岁时反而少一点了。
在这里插入图片描述

基本框架

  1. 预训练(此时是大模型)
  2. 评估重要性(参数或者神经元的)
  3. 剪枝
  4. 微调
  5. 可以再次回到评估阶段,循环多次
    在剪枝后准确率会下降,但是可以通过微调,让模型恢复一些。最好不要一下子剪太多,不然模型无法恢复。可以一次剪一点,比如10%。
    在这里插入图片描述

weight pruning

剪掉参数之后,模型不规则。所以用pytorch不好实践(主要是函数库的问题,如果写了不规则模型的函数库也可以),硬件也不允许。所以想通过把剪掉的参数补0来让模型变得规则,但实际上模型并没有变小。
在这里插入图片描述
sparsity是指有多少百分比的参数被剪掉了,图中的sparsity接近1,但基本上没加速,多数情况下还变慢了
在这里插入图片描述

neuron pruning

在这里插入图片描述

Why pruning?

提出大乐透假说

为什么要先train大的再把它变成小的?怎么不直接从小的开始train?
因为大的模型更好train,直接train小的比train完大的变小的结果差。
为什么大的更好train?有一个假说叫大乐透假说。
在这里插入图片描述

大乐透假说的解释

一开始买更多彩票增加中奖率。可以把一个大的network看做是很多的sub-network。只要有一个sub-network成功,那这个大的network就能成功。
在这里插入图片描述

实验证明大乐透假说

剪枝之后的小network,如果里面的参数都是random init的而不是没剪枝之前的,那就train不起来(对应绿色的参数);但是如果是用的剪枝之前的参数,相应位置的参数一一对应(红色的参数),这个小网络就能train。
在这里插入图片描述
正负号是初始化参数能不能训练得起来的关键,绝对值不重要
在这里插入图片描述

反驳大乐透假说

  1. 直接train小的也可以,只要多点epoch(Scratch-B)
  2. 大乐透假说只在特定条件下起作用(小learning rate, unstructured)
    这里的unstructured指的是以weight为单位prune才能观察到大乐透现象。

在这里插入图片描述

Knowledge Distillation

Parameter Quantization

Architecture Design

Dynamic Computation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/700188.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单记录下:Navicat 导出表结构至 Excel

首先我们需要通过sql语句查询出相关的表结构的结构 SELECT COLUMN_NAME AS 字段名称,COLUMN_TYPE AS 字段类型,IF(IS_NULLABLENO,否,是) AS 是否必填,COLUMN_COMMENT AS 注释FROM INFORMATION_SCHEMA.COLUMNSWHERE table_schema bs-gdsAND table_name sys_menu;查询的结构如下…

软件项目验收第三方测试报告如何获取

软件项目验收第三方测试报告是确保软件质量、安全性和稳定性的重要环节。对于企业和开发者来说,获取一份全面、专业的第三方测试报告,对于提升软件产品的竞争力和用户满意度至关重要。本文将介绍如何获取软件项目验收第三方测试报告,以及相关…

汇昌联信科技:拼多多电商的运营流程有哪些?

在当今互联网高速发展的时代,电商平台层出不穷,其中拼多多以其独特的团购模式和低价策略迅速崛起,成为众多消费者和商家的新宠。那么,拼多多电商的运营流程究竟包含哪些环节呢?接下来,我们将从商品上架、营销推广、订…

什么是ThreadLocal

1. 什么是ThreadLocal ThreadLocal 为每一个线程提供独立的局部变量,每个线程都拥有该变量的一个独立副本。 每个Thread里面都有一个ThrealLocal.ThreadLocalMap结构,里面由Entry数组组成。key是ThrealLocal,value是我们存的Object&#xff…

使用yarn/npm安装插件(涉及electron),总是报错证书错误或者ssl解析错误

同学们可以私信我加入学习群! 正文开始 前言一、问题描述二、解决措施总结 前言 最近electron更新到了30大版本,里面更新的一个重大变化是主进程增加了 WebContentsView 和 BaseWindow,对窗口的控制会更加丝滑。 正好最近在做把文章或者视频…

2024-简单点-ultralytics库解析-data模块

data模块 overview布局\_\_init__.pyfrom .base import BaseDataset\_\_all__ annotator.pyaugment.pyclass BaseTransformclass Composeclass BaseMixTransformclass Mosaic静态方法更新label class MixUpRandomPerspectiveclass RandomHSV overview布局 从上往下解析 __init…

29、Qt使用上下文菜单(右键菜单)

说明:使用四种方式实现鼠标右击界面,显示出菜单,菜单上有两个动作,选择两个动作,分别打印“111”和“222”。 界面样式如下: 一、方法1:重写鼠标事件mousePressEvent .h中的代码如下&#xff…

C++——超简单登录项目

程序入口文件 #include <QtWidgets/QApplication> // 包含登录页面头文件 #include "DlgLogin.h"int main(int argc, char *argv[]) {QApplication a(argc, argv);// 程序入口// 调页面起来//DlgMain w;//w.show();// 换成登录页面DlgLogin w;w.show();return…

大数据可视化实验(四):Excel数据可视化

目录 一、实验目的... 1 二、实验环境... 1 三、实验内容... 1 1&#xff09;excel函数应用.. 1 2&#xff09;数据透视图绘制... 3 四、总结与心得体会... 5 一、实验目的 1&#xff09;掌握函数和公式的原理 2&#xff09;掌握在单元格或编辑栏中直接输入带函数的公式…

Weblogic未授权远程代码执行漏洞 (CVE-2023-21839)

1 漏洞概述 CVE-2023-21839是一个针对Oracle WebLogic Server的远程代码执行漏洞。WebLogic是美国Oracle公司出品的一个Java应用服务器&#xff0c;用于本地和云端开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用。该漏洞源于WebLogic IIOP/T3协议存在的缺陷&…

ATA-4315高压功率放大器在高频理疗仪驱动中的应用

现代社会&#xff0c;面对生活压力、工作压力&#xff0c;再加上不良的生活习惯&#xff0c;难免身体会出现这样或那样的问题&#xff0c;随着科技的发展&#xff0c;我们除了来到医院进行具体的治疗&#xff0c;一些可以用来辅助医生进行治疗的仪器设备也越来越多的应用到了临…

JSON在线解析及格式化验证 - JSON.cn网站

JSON在线解析及格式化验证 - JSON.cn https://www.json.cn/