Документация утилит¶
utils ¶
Utility functions for VQ compression.
Functions¶
measure_compression ¶
measure_compression(
vq_model, backbone, test_loader, device
)
Measure compression ratio achieved by VQ.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vq_model
|
VectorQuantizer model |
required | |
backbone
|
Segmentation backbone |
required | |
test_loader
|
Test data loader |
required | |
device
|
Device to run on |
required |
Returns:
Name | Type | Description |
---|---|---|
compression_ratio |
Compression ratio achieved |
Source code in embeddings_squeeze\utils\compression.py
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
|
compute_iou_metrics ¶
compute_iou_metrics(
predictions, targets, num_classes, ignore_index=255
)
Compute IoU metrics for segmentation.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
predictions
|
Predicted masks [B, H, W] |
required | |
targets
|
Ground truth masks [B, H, W] |
required | |
num_classes
|
Number of classes |
required | |
ignore_index
|
Index to ignore in computation |
255
|
Returns:
Name | Type | Description |
---|---|---|
metrics |
Dictionary with IoU metrics |
Source code in embeddings_squeeze\utils\compression.py
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
|
initialize_codebook_from_data ¶
initialize_codebook_from_data(
vq_model,
backbone,
train_loader,
device,
max_samples=50000,
)
Initialize codebook using k-means clustering on real data.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vq_model
|
VectorQuantizer model |
required | |
backbone
|
Segmentation backbone |
required | |
train_loader
|
Training data loader |
required | |
device
|
Device to run on |
required | |
max_samples
|
int
|
Maximum number of samples for k-means |
50000
|
Source code in embeddings_squeeze\utils\initialization.py
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
|
compute_sample_iou ¶
compute_sample_iou(
prediction, target, num_classes, ignore_index=255
)
Compute IoU for a single sample.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prediction
|
Tensor
|
Predicted mask [H, W] |
required |
target
|
Tensor
|
Ground truth mask [H, W] |
required |
num_classes
|
int
|
Number of classes |
required |
ignore_index
|
int
|
Index to ignore in computation |
255
|
Returns:
Name | Type | Description |
---|---|---|
iou |
float
|
Mean IoU across all classes |
Source code in embeddings_squeeze\utils\comparison.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
|
evaluate_model ¶
evaluate_model(model, dataloader, device, num_classes=21)
Evaluate model on dataset and collect results.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model
|
Model to evaluate |
required | |
dataloader
|
Data loader |
required | |
device
|
Device to run on |
required | |
num_classes
|
int
|
Number of classes |
21
|
Returns:
Name | Type | Description |
---|---|---|
results |
List[Tuple[int, float, Tensor, Tensor, Tensor]]
|
List of (sample_idx, iou, image, mask, prediction) tuples |
Source code in embeddings_squeeze\utils\comparison.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
|
find_best_worst_samples ¶
find_best_worst_samples(results, n_best=5, n_worst=5)
Find best and worst samples based on IoU.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
results
|
List[Tuple[int, float, Tensor, Tensor, Tensor]]
|
List of (sample_idx, iou, image, mask, prediction) tuples |
required |
n_best
|
int
|
Number of best samples to return |
5
|
n_worst
|
int
|
Number of worst samples to return |
5
|
Returns:
Name | Type | Description |
---|---|---|
best_samples |
List
|
List of best sample tuples |
worst_samples |
List
|
List of worst sample tuples |
Source code in embeddings_squeeze\utils\comparison.py
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
|
prepare_visualization_data ¶
prepare_visualization_data(
vq_model,
baseline_model,
dataloader,
device,
num_classes=21,
n_best=5,
n_worst=5,
)
Prepare data for visualization by running both models and ranking results.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vq_model
|
VQ model |
required | |
baseline_model
|
Baseline model |
required | |
dataloader
|
Data loader |
required | |
device
|
Device to run on |
required | |
num_classes
|
int
|
Number of classes |
21
|
n_best
|
int
|
Number of best samples |
5
|
n_worst
|
int
|
Number of worst samples |
5
|
Returns:
Name | Type | Description |
---|---|---|
best_samples |
List of best sample tuples with both predictions |
|
worst_samples |
List of worst sample tuples with both predictions |
Source code in embeddings_squeeze\utils\comparison.py
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
|
visualize_comparison ¶
visualize_comparison(
samples, title, output_path, num_classes=21
)
Create visualization comparing baseline and VQ predictions.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
samples
|
List[Tuple[int, float, Tensor, Tensor, Tensor, Tensor]]
|
List of (idx, iou, image, mask, pred_baseline, pred_vq) tuples |
required |
title
|
str
|
Figure title |
required |
output_path
|
str
|
Path to save figure |
required |
num_classes
|
int
|
Number of classes |
21
|
Source code in embeddings_squeeze\utils\comparison.py
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 |
|