pymc-devs / pymc-devs/pytensor
Deprecate / rewrite esoteric Ops
Open
Nobody has claimed this yet.
maintenance
OpFromGraph
- Dominant language
- Python
- Stars
- 644
- Forks
- 208
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 16
Description
Description
Make our codebase more leightweight by removing:
- pytensor.tensor.basic.PermuteRowElements
- pytensor.tensor.io.LoadFromDisk (done in #1766)
Replace by symbolic equivalent:
- Softmax/LogSoftmax/SoftmaxGrad (use OpFromGraph to overload Softmax L_op)
- pytensor.tensor.extra_ops.Bartlett (can be implemented symbolic easily: https://github.com/numpy/numpy/blob/e7a123b2d3eca9897843791dd698c1803d9a39c2/numpy/lib/_function_base_impl.py#L3254-L3262)
- pytensor.tensor.extra_ops.UnravelIndex see #1770
- pytensor.tensor.extra_ops.RavelMultiIndex see #1770
- Several RVs: #1221
- Several ScalarOps need not exist: #1092
- Also: xlogx, xlogy0, can just be switch statements?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the listed operations in pytensor.tensor.basic and pytensor.tensor.extra_ops, then follow the referenced issues #1092, #1221, #1770, and #1766 to determine what remains. Done means removing or replacing the remaining esoteric Ops with symbolic equivalents while accounting for work already completed or tracked elsewhere.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- ai
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100