resnet3d-34-tornet / README.md
deepguess's picture
Upload README.md with huggingface_hub
543d141 verified
metadata
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 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 for full usage instructions and deployment guidance.

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

@model{resnet3d-34-tornet,
  title={ResNet3D-34 for Temporal Radar Tornado Detection},
  author={DeepGuess},
  year={2026},
  url={https://huggingface.co/deepguess/resnet3d-34-tornet},
}