Repository navigation
Conversation
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
|
@antonsoo thanks for this contribution. It does indeed seem to be a bug! I will have a closer look in coming days and let you know if I have any further comments (already left a few minor ones) |
|
Thanks for checking. I will address the minor points once the review is published; there are no inline comments visible yet. |
mrava87
left a comment
There was a problem hiding this comment.
@antonsoo thanks for spotting this inconsistency... we should be able to support unordered axes inputs and I think this is the correct way of doing it... I requested a few changes aimed at keeping consistency with the rest of the codebase before I can merge.
|
@claude review. Check if any similar pattern should be fixed in other operators using axes |
|
Claude finished @mrava87's task in 30s —— View job Review of #818: filter axis order in
|
ae514af to
198bfdf
Compare
|
Updated in 198bfdf: the transpose now applies at every filter rank. ConvolveND infers omitted axes from h.ndim, since retaining the old two-axis default would break the existing 3D-filter calls once the transpose is unconditional. Convolve2D keeps its existing default axes. The tests now follow the seeded 3D/4D modelling convention with shifted and negative axes. The example plots its results, and the old release entry and extra axis-mapping prose are removed. CPU and CuPy convolution suites pass; independent photograph matrix/inverse checks cover both embedded and full-rank filters, with unchanged controls. CuPy's unsupported multidimensional automatic-method selection is unchanged and documented in the validation notes. |
|
Read the Docs exposed a wrapper default I missed: SmoothingND still passed the old two-axis default for a 3D filter. Fixed in 4d81ea4 by letting the wrapper infer omitted axes too. Both failing examples now finish locally, and the targeted Sphinx gallery executes plot_convolve, plot_smoothing3d and plot_pwdslope successfully. CPU convolution/smoothing/PWD checks pass; CuPy convolution/smoothing checks pass with the unsupported PWD cases skipped. Added default-axis regressions cover 2D, 3D and 4D models. Independent photo averages also match on CPU and CUDA, with the existing controls unchanged. The description is updated; the hosted rebuild still needs to finish. |
|
@claude review again |
|
Claude finished @mrava87's task in 24s —— View job Review of #818 (second pass)I read the diff against Implementation: correct
Minor suggestions
mrava87's latest requests (19:41) still openThe latest commit, 4d81ea4, doesn't address these. They are all in the tests.
SummaryThe core fix is sound and I have no correctness concerns. The review comments that remain are test-style conventions. I made no changes to the branch. |
|
@antonsoo handle also these two comments:
|
4d81ea4 to
2cfa729
Compare
|
The remaining macOS/Python 3.13t failure is in four existing float32 prestack inversions ( |
|
@claude review again and check if comments in previous review are now handled. |
|
Claude finished @mrava87's task in 28s —— View job Review of #818 (third pass)I diffed Previous comments
Remaining items
CorrectnessNo concerns with the core logic:
I made no changes to the branch. |
2cfa729 to
a5d065f
Compare
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
|
Added checks for the number of axes and for duplicates after normalizing negative axes. Filters with more dimensions than the model now fail early, including filters whose dimensions are all 1. The 12 new error cases follow the updated test guide. I left the older CPU: 460 pass. CuPy: 452 pass, eight unsupported PWD skips. All 288 photo records are identical to the earlier independent references. Lint and the API docs build pass; the docs build skips gallery execution. |
With unordered
axes, filters with fewer dimensions than the model are reshaped without reordering their values. When filter and model ranks match,axesis ignored. For example, a kernel applied withaxes=(2, 0)can represent a different spatial filter. Forward and adjoint dot-tests alone miss this because both use the same wrong kernel.Transpose the padded filter into physical axis order before the existing singleton-dimension embedding, at every filter rank.
ConvolveNDand itsSmoothingNDwrapper now infer omitted axes from the filter rank, so default 3D-filter and 3D-smoothing calls still work when the transpose is applied consistently. Explicit axes correspond to the filter dimensions in order. Invalid axis counts, repeated normalized axes and filters with more dimensions than the model now raise clearValueErrors before padding or transposition.Convolve2Dkeeps its existing default pair of axes.This example differs by 565 on
devand agrees to floating-point precision with the correction:Validation on Linux / RTX 5070:
make lintpasses. The preceding Sphinx API build passed with gallery execution disabled and one configuration cache warning; this test-only follow-up leaves every library and documentation file unchanged.AI disclosure: OpenAI Codex was used for investigation, implementation, tests, independent CPU/CUDA validation, documentation and PR prose.