Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[BUG] Hardtanh ignores min_val/max_val from the .nam config

Abierto Apto para principiantes
#342 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
cpp, python, pytorch
Área
backend

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-modeler main @ 0072676419): nam/models/_activations.py, lines ~253–258, exports
    if 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.cpp maps "Hardtanh" to the parameterless singleton ActivationHardTanh (clamp to ±1); min_val/max_val are only parsed for LeakyHardtanh.

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sdatkinson/NeuralAmpModelerCore

Todos los issues de sdatkinson/NeuralAmpModelerCore

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.