Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta Adatta ai principianti
#342 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
cpp, python, pytorch
Ambito
backend

Direzione di ricerca

Inizia da NAM/activations.cpp, quindi confronta i limiti esportati in nam/models/_activations.py. Traccia il modo in cui vengono analizzati i parametri di configurazione di Hardtanh e prova una configurazione con min_val=-0.5 e max_val=0.8. Il lavoro è completo quando Hardtanh con limiti corrisponde al trainer, mentre la stringa semplice e le configurazioni senza limiti mantengono il comportamento attuale di ±1.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.)

Lingua principale
C++
Stelle
955
Fork
183
Merge medio
36m
PR unite (30g)
4

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sdatkinson/NeuralAmpModelerCore

Tutte le issue di sdatkinson/NeuralAmpModelerCore

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.