Instructions to use thangkt/PCB-Prune-YOLO-P10-Direct with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use thangkt/PCB-Prune-YOLO-P10-Direct with ultralytics:
from ultralytics import YOLOvv8 model = YOLOvv8.from_pretrained("thangkt/PCB-Prune-YOLO-P10-Direct") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
Upload README.md with huggingface_hub
Browse files
README.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: agpl-3.0
|
| 3 |
+
library_name: ultralytics
|
| 4 |
+
pipeline_tag: object-detection
|
| 5 |
+
tags:
|
| 6 |
+
- yolo
|
| 7 |
+
- yolov8
|
| 8 |
+
- depgraph
|
| 9 |
+
- torch-pruning
|
| 10 |
+
- structured-pruning
|
| 11 |
+
- deeppcb
|
| 12 |
+
datasets:
|
| 13 |
+
- thangkt/PCB-Prune-YOLO-DeepPCB
|
| 14 |
+
metrics:
|
| 15 |
+
- map
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+
# PCB-Prune-YOLO P10 Direct
|
| 19 |
+
|
| 20 |
+
Validation-selected YOLOv8n checkpoint produced by direct DepGraph structured
|
| 21 |
+
pruning followed by matched fine-tuning on DeepPCB. This model does not use
|
| 22 |
+
sparse learning or knowledge distillation.
|
| 23 |
+
|
| 24 |
+
## Validation results
|
| 25 |
+
|
| 26 |
+
| Precision | Recall | mAP50 | mAP50-95 |
|
| 27 |
+
|---:|---:|---:|---:|
|
| 28 |
+
| 0.96479 | 0.95706 | 0.98273 | 0.77736 |
|
| 29 |
+
|
| 30 |
+
At seed 42 this direct P10 control exceeded the matched sparse-learning P10 by
|
| 31 |
+
1.42 mAP50-95 percentage points. This is a single-seed observation and the
|
| 32 |
+
DeepPCB test split was not used for model selection.
|
| 33 |
+
|
| 34 |
+
## Compression and Tesla T4 benchmark
|
| 35 |
+
|
| 36 |
+
| Parameters | MACs | Size | Latency batch 1 | FPS |
|
| 37 |
+
|---:|---:|---:|---:|---:|
|
| 38 |
+
| 2,416,871 | 3.2695G | 4.854 MiB | 10.433 ms | 95.85 |
|
| 39 |
+
|
| 40 |
+
Input size is 640. Latency uses 50 warm-up and 200 synchronized CUDA iterations.
|
| 41 |
+
|
| 42 |
+
## Training configuration
|
| 43 |
+
|
| 44 |
+
- Direct local group-magnitude pruning, ratio 0.10, one step, no channel rounding
|
| 45 |
+
- AdamW, `lr0=0.001`, `lrf=0.01`, momentum 0.9, weight decay 0.0005
|
| 46 |
+
- 50 epochs, batch 64, patience 10, seed 42, AMP and deterministic mode
|
| 47 |
+
- Six classes: open, short, mousebite, spur, copper, pin-hole
|
| 48 |
+
|
| 49 |
+
## Loading
|
| 50 |
+
|
| 51 |
+
Structured pruning changes the serialized architecture. Install the project so
|
| 52 |
+
the `PrunableC2f` class is importable before loading:
|
| 53 |
+
|
| 54 |
+
```python
|
| 55 |
+
from ultralytics import YOLO
|
| 56 |
+
|
| 57 |
+
model = YOLO("best.pt")
|
| 58 |
+
results = model("pcb.jpg", imgsz=640)
|
| 59 |
+
```
|
| 60 |
+
|
| 61 |
+
Project: https://github.com/pnthang04/PCB-Prune-YOLO
|
| 62 |
+
|
| 63 |
+
The checkpoint was verified by loading in a new process and running CUDA
|
| 64 |
+
inference with decoded output shape `[1, 10, 8400]`.
|