NNI --模型剪枝

发布时间:2023年12月28日

概念

剪枝是压缩神经网络模型的常用技术。 剪枝方法探索模型权重(参数)中的冗余,并尝试删除/修剪冗余和非关键权重。 冗余元素从模型中修剪,其值归零,我们确保它们不参与反向传播过程。

修剪深度学习模型有三种常见做法,NNI 通过在关键修剪阶段工作来支持上述所有修剪实践。

  1. 预训练模型 -> 修剪模型 -> 微调修剪后的模型
  2. 在训练期间修剪模型(即修剪感知训练) -> 微调修剪后的模型
  3. 修剪模型 -> 从头开始训练修剪后的模型

模型剪枝案例

第一步:加载待剪枝的模型
使用一个简单的模型,并在MNIST数据集上进行了预训练。

import torch
import torch.nn.functional as F
from torch.optim import SGD

from nni_assets.compression.mnist_model import TorchModel, trainer, evaluator, device
# 随机数种子
import numpy as np
import random
torch.manual_seed(1)
torch.cuda.manual_seed_all(1)
np.random.seed(1)
random.seed(1)
# define the model
model = TorchModel().to(device)

第二步:待剪枝模型的预训练
训练一个深度学习模型,实际上是在用数据来寻找一个最优的参数组合,这些参数决定了模型在输入数据时如何进行计算。通过训练,我们可以找到一组能够最好地拟合我们的数据的参数。这个过程还可以帮助我们理解每个参数在模型中的重要性。
在模型剪枝的过程

文章来源:https://blog.csdn.net/qq_42178122/article/details/135255762
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。