[BUG] Hardtanh ignores min_val/max_val from the .nam config
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 82/100
Hướng nghiên cứu
Bắt đầu trong NAM/activations.cpp, sau đó đối chiếu các giới hạn được export trong nam/models/_activations.py. Theo dõi cách các tham số cấu hình của Hardtanh được phân tích và thử một cấu hình với min_val=-0.5 và max_val=0.8. Hoàn tất khi Hardtanh có giới hạn khớp với trainer, còn chuỗi thuần túy và các cấu hình không có giới hạn vẫn giữ nguyên hành vi ±1 hiện tại.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.)
- Ngôn ngữ chính
- C++
- Star
- 931
- Fork
- 178
- Merge trung bình
- 36 phút
- Pull request đã merge (30 ngày)
- 4
Chuẩn bị môi trường
Chúng tôi chưa kiểm tra các tệp thiết lập môi trường của dự án này. Hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của sdatkinson/NeuralAmpModelerCore
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
sdatkinson/NeuralAmpModelerCore#328 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
sdatkinson/NeuralAmpModelerCore#305 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
sdatkinson/NeuralAmpModelerCore#304 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 76/100
sdatkinson/NeuralAmpModelerCore#341 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
sdatkinson/NeuralAmpModelerCore#327 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của sdatkinson/NeuralAmpModelerCore
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
tenstorrent/tt-metal#58057 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
maplibre/maplibre-native#4690 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
comp-query-execution
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
ClickHouse/ClickHouse#122569 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100