[BUG] Hardtanh ignores min_val/max_val from the .nam config
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
Línea de trabajo
Empieza en NAM/activations.cpp y compara después los límites exportados en nam/models/_activations.py. Rastrea cómo se analizan los parámetros de configuración de Hardtanh y prueba una configuración con min_val=-0.5 y max_val=0.8. Estará terminado cuando Hardtanh acotado coincida con el entrenador, mientras que la cadena simple y las configuraciones sin límites conserven el comportamiento actual de ±1.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Hardtanh activations ignore their min_val / max_val bounds: the core always clamps to [-1, 1]. The trainer exports Hardtanh with explicit bounds, so a model trained with torch.nn.Hardtanh(min_val, max_val) other than ±1 runs differently in the core.
Where
- Trainer (
neural-amp-modelermain@ 0072676419):nam/models/_activations.py, lines ~253–258, exportsif isinstance(module, _nn.Hardtanh): return {"type": "Hardtanh", "min_val": module.min_val, "max_val": module.max_val} - Core (
main@ 0b3d3c97b0, also v0.5.4):NAM/activations.cppmaps"Hardtanh"to the parameterless singletonActivationHardTanh(clamp to ±1);min_val/max_valare only parsed forLeakyHardtanh.
Suggested fix
When a Hardtanh config carries min_val/max_val, honour them — e.g. build a clamp with those bounds, or map it to LeakyHardtanh with min_slope = max_slope = 0 (which is exactly a clamp to [min_val, max_val]). The bare string "Hardtanh" and configs without bounds keep today's ±1 behaviour.
With that mapping, a test model using Hardtanh(min_val=-0.5, max_val=0.8) matched the trainer's PyTorch output to ~6e-8. (That same model also has an inactive layer1x1, so the ~6e-8 figure is with the fix from #341 applied as well.)
- Lenguaje dominante
- C++
- Estrellas
- 931
- Forks
- 178
- Merge medio
- 36 min
- PR fusionados (30 d)
- 4
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 sdatkinson/NeuralAmpModelerCore
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
sdatkinson/NeuralAmpModelerCore#328 ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
sdatkinson/NeuralAmpModelerCore#305 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
sdatkinson/NeuralAmpModelerCore#304 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
sdatkinson/NeuralAmpModelerCore#341 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
sdatkinson/NeuralAmpModelerCore#327 · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de sdatkinson/NeuralAmpModelerCore
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
hyprwm/aquamarine#426 ·
Los mantenedores suelen responder en 1 día
-
Winget hash mismatch for 5.0.3.0Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
amnezia-vpn/amnezia-client#3222 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
valkey-io/valkey-search#1465 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
KhronosGroup/Vulkan-Tutorial#524 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
hyprwm/hyprshutdown#36 ·