structured pruning
Struktureret beskæring er en modelkompressionsteknik, der fjerner hele strukturer (kanaler, filtre, lag) fra et neuralt netværk.
Kort fortalt
Struktureret beskæring gør neuronet lettere ved at fjerne hele grupper af vægte på én gang.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En teknik til komprimering af neurale netværk, hvor man fjerner hele grupper af parametre (f.eks. filtre, kanaler eller lag) i stedet for enkelte vægte.
- Struktureret beskæring af filtre i et convolutional neuralt netværk kan reducere antallet af FLOPs betydeligt uden stort præcisionstab.
- Ved at anvende struktureret beskæring på transformer-modeller kan man fjerne hele opmærksomhedshoveder, hvilket gør modellen mere effektiv.
Hvornår bruges det
Struktureret beskæring anvendes typisk efter træning for at reducere modelstørrelse og accelerere inferens, især til implementering på mobile eller edge-enheder. Den adskiller sig fra ustruktureret beskæring, der fjerner individuelle vægte, ved at bevare tætte matrixoperationer, hvilket gør det lettere at opnå hastighedsforbedringer på standard hardware.
Kodeeksempel
import torch
import torch.nn.utils.prune as prune
model = torch.nn.Conv2d(3, 64, 3)
# Structured pruning: prune 50% of channels
prune.ln_structured(model, name='weight', amount=0.5, n=2, dim=0)
print(model.weight.shape) # channels reducedEksempel på struktureret beskæring af kanaler i et convolutional lag ved hjælp af PyTorchs indbyggede funktion.
Oprindelse
Udtrykket 'pruning' (beskæring) kommer fra træplantning og beskriver fjernelse af uønskede grene. 'Struktureret' henviser til, at beskæringen sker på niveau med hele strukturer som filtre eller kanaler.
Afledte ord
2Kilder
2- Pruning Filters for Efficient ConvNets
- Rethinking the Value of Network Pruning