# Progressive Pruning of Light Dehaze Networks for Static Scenes
## 3 Methods
### Progressive Pruning Algorithm  
Building upon the insights gained from our initial pruning efforts, we introduce a novel progressive pruning algorithm, as presented in Algorithm 1, designed to iteratively refine our model, pushing the boundaries of efficiency without compromising dehazing quality. This algorithm represents a significant advancement over traditional one-shot pruning methods, offering a more nuanced and progressive approach to model compression. At its core, our progressive pruning algorithm operates on the principle of gradual, informed compression. We begin each iteration with a channel importance re-evaluation, recognizing that the relative importance of channels may shift as the network adapts to previous pruning steps. This dynamic reassessment ensures that our pruning decisions remain optimal as the network evolves. The algorithm's progressive pruning rate is a key innovation. Rather than applying a fixed compression ratio, we dynamically adjust the pruning rate based on the model's performance on a validation set. We employ a novel metric that combines dehazing quality (measured through PSNR and SSIM) with computational efficiency (measured in FLOPs). This allows us to aggressively prune when performance impact is minimal and become more conservative as we approach the model's capacity limit. ```
0: Pretrained model \(M\), validation set \(V\), initial pruning rate \(r_{0}\), max iterations \(max_{i}\)_ter_, performance threshold \(\theta\)
0: Pruned model \(M_{pruned}\)
1:\(M_{current}\gets M\), \(r\gets r_{0}\)
2:for\(i=1\)to max\({}_{i}\)terdo
3:\(I\leftarrow\) ChannelImportanceAnalysis(\(M_{current}\))
4:\(C\leftarrow\) SelectChannelsToPrune(\(M_{current}\), \(I\), \(r\))
5:\(M_{pruned}\leftarrow\) PruneChannels(\(M_{current}\), C)
6:\(M_{finuned}\leftarrow\) FineTime(\(M_{pruned}\), \(V\))
7:\(performance\leftarrow\) EvaluateModel(\(M_{finuned}\), \(V\))
8:if\(performance\geq\theta\)then
9:\(M_{current}\gets M_{finuned}\), \(r\leftarrow\) UpdatePruningRate(\(r\), \(performance\))
10:else
11:\(r\gets r/2\)
12:endif
13:if\(r<\epsilon\)thenbreak
14:endif
15:endfor
16:return\(M_{current}\)
```  
**Algorithm 1** Iterative Channel Pruning Algorithm  
Our iterative optimization process follows a carefully designed cycle of pruning, fine-tuning, and evaluation. After each pruning step, we apply a short but intensive fine-tuning phase, allowing the network to adapt to its new structure. We then evaluate the pruned and fine-tuned model against our validation set. If the performance meets our predefined criteria, we proceed to the next pruning iteration; otherwise, we rollback to the previous state and adjust our pruning parameters. The convergence properties of our algorithm are particularly noteworthy. Through extensive experimentation, we observe that the progressive approach allows us to achieve higher compression rates than one-shot methods while maintaining better performance. We provide a detailed convergence analysis, showing how model size, computational cost, and dehazing quality evolve over successive pruning iterations. In our comparative analysis, we demonstrate the clear advantages of our progressive pruning approach over traditional methods. Not only does it achieve higher compression rates (up to 80% parameter reduction compared to 70% with one-shot pruning), but it also maintains better dehazing quality, particularly in challenging scenarios with complex textures or varying haze densities. We acknowledge potential limitations, such as increased training time, but argue that the performance benefits outweigh this cost in scenarios where model efficiency is paramount, such as deployment on edge devices for real-time dehazing. Through this comprehensive approach to model development and optimization, we present a highly efficient, scene-specific dehazing system that pushes the boundaries of what's possible in fixed camera environments.