Expand ONNX export test coverage beyond UNet and SegResNet
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 75/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- python, pytorch
- Área
- machine-learning, testing-qa
Línea de trabajo
Comienza con tests/networks/test_convert_to_onnx.py y sigue su patrón de exportación parametrizado existente de ONNX. Añade cobertura exclusiva para CPU para las diez arquitecturas de red indicadas, usando configuraciones pequeñas y entradas diminutas, con BasicUNetPlusPlus configurado con deep_supervision=False. Se considera terminado cuando cada modelo enumerado se exporta correctamente sin aumentar sustancialmente el tiempo de ejecución de CI.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The current ONNX export test suite (tests/networks/test_convert_to_onnx.py) only covers 2 out of 40+ network architectures: UNet (2D) and SegResNet (3D). This means regressions in ONNX exportability for widely used architectures like DynUNet, UNETR, VNet, DenseNet, ResNet, etc. go completely undetected until a user hits them in production.
The convert_to_onnx() utility is a key part of MONAI's deployment story, and the gap between supported networks and tested networks is significant.
Describing the solution
Add parameterized ONNX export tests for additional architectures that are known to export cleanly. Starting with these 10 LOW-risk networks that have no ONNX-incompatible patterns (no .item(), no data-dependent control flow, single-tensor output):
- DynUNet — popular for nnU-Net style pipelines
- AttentionUnet — standard attention-gated U-Net
- BasicUNet — simple baseline U-Net
- BasicUNetPlusPlus — UNet++ (with
deep_supervision=False) - VNet — classic 3D segmentation
- HighResNet — standard 3D segmentation
- DenseNet — classification backbone
- ResNet — classification backbone
- SENet — squeeze-excitation network
- UNETR — transformer-based segmentation
All tests will use small model configurations and tiny input tensors to keep CI runtime low, following the existing parameterized pattern in the test file.
Describe alternatives
- Testing all 40+ networks at once — impractical due to ONNX-incompatible patterns in some architectures (e.g., SwinUNETR uses
.item()during init, AHNet has data-dependent control flow). Better to start with the safe subset and expand incrementally.
Additional context
The existing FIXME at line 29 of test_convert_to_onnx.py notes that CUDA produces different outputs vs ONNX — all tests run CPU-only, which is fine for verifying exportability.
- Lenguaje dominante
- Python
- Estrellas
- 8.7k
- Forks
- 1.6k
- Merge medio
- 5 d 1 h
- PR fusionados (30 d)
- 22
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Project-MONAI/MONAI
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Project-MONAI/MONAI#9068 · 2 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Project-MONAI/MONAI#9046 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Project-MONAI/MONAI#9026 ·
-
Release 1.6.1 Checklist AbiertoCI/CD
Project-MONAI/MONAI#9119 · 1 comentario · 1 asignado ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
Project-MONAI/MONAI#9116 ·
Todos los issues de Project-MONAI/MONAI
Issues similares
-
sponsored
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
opensubtitlescom: moviehash never sent when opensubtitles (.org) is not in the provider list Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Diaoul/subliminal#1382 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
triage/confirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
agentscope-ai/agentscope#2775 ·
-
worker.gpuVendors silently accepts unsupported/misspelled vendor names — no validation guard Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100