| | ---
|
| | license: cc-by-4.0
|
| | tags:
|
| | - pytorch
|
| | - tornado-detection
|
| | - weather
|
| | - radar
|
| | - nexrad
|
| | - 3d-cnn
|
| | - video-classification
|
| | - severe-weather
|
| | - dual-pol
|
| | datasets:
|
| | - deepguess/tornet-temporal
|
| | pipeline_tag: video-classification
|
| | ---
|
| |
|
| | # ResNet3D-34 for Tornado Detection
|
| |
|
| | A larger 3D CNN variant trained on temporal dual-polarimetric NEXRAD radar sequences. This is the **64M parameter** version -- see [resnet3d-18-tornet](https://huggingface.co/deepguess/resnet3d-18-tornet) for the smaller, equally performant 33M version.
|
| |
|
| | ## Model Description
|
| |
|
| | Same dual-head architecture as ResNet3D-18 but with deeper residual blocks (layers=[3,4,6,3]).
|
| |
|
| | | Parameter | Value |
|
| | |-----------|-------|
|
| | | Backbone | ResNet3D-34 (BasicBlock, layers=[3,4,6,3]) |
|
| | | Parameters | 63.7M |
|
| | | Input shape | (B, 24, 8, 128, 128) |
|
| | | Output shape | (B, 4) |
|
| |
|
| | ## Performance
|
| |
|
| | ### Test Set (3,685 events)
|
| |
|
| | | Head | AUC | CSI | F1 | Precision | Recall |
|
| | |------|-----|-----|-----|-----------|--------|
|
| | | Detection | 0.898 | 0.540 | 0.701 | 0.596 | 0.851 |
|
| | | Prediction | 0.988 | 0.865 | 0.928 | 0.924 | 0.932 |
|
| | | **Combined** | **0.943** | -- | -- | -- | -- |
|
| |
|
| | ### Key Finding
|
| |
|
| | ResNet3D-34 (64M params) performs **nearly identically** to ResNet3D-18 (33M params) on this task (combined AUC 0.943 vs 0.942). The smaller model is recommended for deployment due to faster inference and lower memory usage.
|
| |
|
| | ## Training
|
| |
|
| | | Parameter | Value |
|
| | |-----------|-------|
|
| | | Optimizer | AdamW (lr=1e-3) |
|
| | | Batch size | 512 |
|
| | | Epochs | 20 |
|
| | | GPU | NVIDIA H200 (144GB) |
|
| |
|
| | ## Usage
|
| |
|
| | Same as ResNet3D-18 -- see [resnet3d-18-tornet](https://huggingface.co/deepguess/resnet3d-18-tornet) for full usage instructions and deployment guidance.
|
| |
|
| | ```python
|
| | from model_resnet3d import DualHeadResNet3D
|
| | model = DualHeadResNet3D(in_channels=24, arch="resnet34")
|
| | state = torch.load("best.pt", map_location="cpu")
|
| | model.load_state_dict(state["model_state_dict"])
|
| | ```
|
| |
|
| | ## Citation
|
| |
|
| | ```bibtex
|
| | @model{resnet3d-34-tornet,
|
| | title={ResNet3D-34 for Temporal Radar Tornado Detection},
|
| | author={DeepGuess},
|
| | year={2026},
|
| | url={https://huggingface.co/deepguess/resnet3d-34-tornet},
|
| | }
|
| | ```
|
| |
|