pruning
Pruning er en teknik til at reducere størrelsen af et neuralt netværk ved at fjerne overflødige vægte eller neuroner.
Kort fortalt
En metode til at gøre neurale netværk mindre og hurtigere ved at skære unødvendige dele væk.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
2- 1
Fjernelse af individuelle vægte i et neuralt netværk baseret på en betydningskriterie, fx vægtstørrelse.
- Efter pruning af vægte blev modellen 90% mindre uden væsentligt tab af præcision.
- 2
Fjernelse af hele neuroner, filtre eller kanaler (structured pruning) for at opnå en mere effektiv modelstruktur.
- Structured pruning af filtre i et CNN kan fremskynde inferens på hardware.
Hvornår bruges det
Bruges typisk efter træning (post-training pruning) eller under træning for at komprimere modeller til deployment på enheder med begrænsede ressourcer eller for at fremskynde inferens.
Kodeeksempel
import torch
import torch.nn.utils.prune as prune
model = torch.nn.Linear(10, 5)
prune.l1_unstructured(model, name='weight', amount=0.5) # prune 50% weightsEksempel på pruning af 50% af vægtene i et lineært lag ved hjælp af L1-kriterie i PyTorch.
Oprindelse
Fra engelsk 'pruning' (beskæring), overført fra havebrug.
Afledte ord
2Kilder
2- Learning both Weights and Connections for Efficient Neural Networks (2015)
- Pruning Filters for Efficient ConvNets (2016)