Skip to content

Conversation

@DanielAvdar
Copy link
Owner

@DanielAvdar DanielAvdar commented May 5, 2025

Refactor SparsemaxFunction to improve modularity and add property-based testing.

  • Refactor SparsemaxFunction

    • Create _threshold_and_support sub-function to handle threshold and support computation logic.
    • Create _compute_gradient sub-function to handle gradient computation logic.
    • Move reshaping logic to sub-functions and ensure ctx operations are done in forward and backward only.
  • Add Unit Tests

    • Add unit tests for _threshold_and_support sub-function.
    • Add unit tests for _compute_gradient sub-function.
    • Add unit tests for reshaping logic sub-functions.
  • Add Property-Based Tests

    • Add hypothesis property-based testing for _threshold_and_support sub-function.
    • Add hypothesis property-based testing for _compute_gradient sub-function.

For more details, open the Copilot Workspace session.

Refactor `SparsemaxFunction` to improve modularity and add property-based testing.

* **Refactor `SparsemaxFunction`**
  - Create `_threshold_and_support` sub-function to handle threshold and support computation logic.
  - Create `_compute_gradient` sub-function to handle gradient computation logic.
  - Move reshaping logic to sub-functions and ensure `ctx` operations are done in `forward` and `backward` only.

* **Add Unit Tests**
  - Add unit tests for `_threshold_and_support` sub-function.
  - Add unit tests for `_compute_gradient` sub-function.
  - Add unit tests for reshaping logic sub-functions.

* **Add Property-Based Tests**
  - Add hypothesis property-based testing for `_threshold_and_support` sub-function.
  - Add hypothesis property-based testing for `_compute_gradient` sub-function.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/DanielAvdar/activations-plus?shareId=XXXX-XXXX-XXXX-XXXX).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants