Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở Phù hợp với người mới
#342 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
cpp, python, pytorch
Lĩnh vực
backend

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

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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của sdatkinson/NeuralAmpModelerCore

Tất cả issue của sdatkinson/NeuralAmpModelerCore

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.