From 9471e0b759e20ce9b0211c4835544b3803a949d3 Mon Sep 17 00:00:00 2001 From: Shantanu Kodgirwar Date: Mon, 3 Aug 2026 13:20:29 +0200 Subject: [PATCH] Make e3PIE dispatch on the array module instead of forcing cupy e3PIE could not run at all. Three separate causes, each verified independently by reverting just that part and watching the e3PIE golden fail. 1. initializeReconstructionParams() built the transfer function under a hardcoded `if True: import cupy as xp`, with the numpy version of the same block sitting above it behind `if False:`. On CPU that produced a cupy H which then met numpy arrays in the position loop: TypeError: Unsupported type . Without cupy installed it was an ImportError instead. It now uses getArrayModule(self.reconstruction.probe), like every other engine. 2. It set self.params.betaProbe / betaObject, but reconstruct() and objectPatchUpdate() read self.betaProbe / self.betaObject: AttributeError: 'e3PIE' object has no attribute 'betaProbe'. Setting them on the engine matches ePIE and the rest. 3. H was not in Reconstruction.possible_GPU_fields, so it stayed on the host when the engine moved to the GPU. With (1) and (2) fixed the CPU run passes and the GPU run still fails; adding H fixes it. H is built from __init__, before _checkGPU runs, so it is created on the host either way and travels with the rest of the state. Adds an e3PIE multislice golden (nslice=3), the configuration the transfer function exists for. Co-Authored-By: Claude Opus 5 --- PtyLab/Engines/e3PIE.py | 44 ++++++++------------- PtyLab/Reconstruction/Reconstruction.py | 5 ++- pyproject.toml | 2 +- tests/regression/data/e3pie_multislice.npz | Bin 0 -> 71554 bytes tests/regression/test_engine_regression.py | 6 +-- 5 files changed, 25 insertions(+), 32 deletions(-) create mode 100644 tests/regression/data/e3pie_multislice.npz diff --git a/PtyLab/Engines/e3PIE.py b/PtyLab/Engines/e3PIE.py index 11905f9..8ad7a56 100644 --- a/PtyLab/Engines/e3PIE.py +++ b/PtyLab/Engines/e3PIE.py @@ -48,35 +48,25 @@ def initializeReconstructionParams(self): Set parameters that are specific to the e3PIE settings. :return: """ - self.params.betaProbe = 0.25 - self.params.betaObject = 0.25 + # these are read back as self.betaProbe / self.betaObject in reconstruct() + # and objectPatchUpdate(), matching every other engine (cf. ePIE.py) + self.betaProbe = 0.25 + self.betaObject = 0.25 self.numIterations = 50 - if False: - # preallocate transfer function - self.reconstruction.H = aspw( - np.squeeze(self.reconstruction.probe[0, 0, 0, 0, ...]), - self.reconstruction.dz, - self.reconstruction.wavelength / self.reconstruction.refrIndex, - self.reconstruction.Lp, - )[1] - # shift transfer function to avoid fftshifts for FFTS - # self.reconstruction.H = np.fft.ifftshift(self.optimizableH) - self.reconstruction.H = np.fft.ifftshift(self.reconstruction.H) - - if True: - import cupy as xp - - # preallocate transfer function - self.reconstruction.H = aspw( - xp.squeeze(self.reconstruction.probe[0, 0, 0, 0, ...]), - self.reconstruction.dz, - self.reconstruction.wavelength / self.reconstruction.refrIndex, - self.reconstruction.Lp, - )[1] - # shift transfer function to avoid fftshifts for FFTS - # self.reconstruction.H = np.fft.ifftshift(self.optimizableH) - self.reconstruction.H = xp.fft.ifftshift(self.reconstruction.H) + # preallocate transfer function. This runs from __init__, before + # _checkGPU has moved anything, so the probe is still on the host here; + # H is listed in Reconstruction.possible_GPU_fields and travels with the + # rest of the state when the engine switches to the GPU. + xp = getArrayModule(self.reconstruction.probe) + self.reconstruction.H = aspw( + xp.squeeze(self.reconstruction.probe[0, 0, 0, 0, ...]), + self.reconstruction.dz, + self.reconstruction.wavelength / self.reconstruction.refrIndex, + self.reconstruction.Lp, + )[1] + # shift transfer function to avoid fftshifts for FFTS + self.reconstruction.H = xp.fft.ifftshift(self.reconstruction.H) def reconstruct(self): self._prepareReconstruction() diff --git a/PtyLab/Reconstruction/Reconstruction.py b/PtyLab/Reconstruction/Reconstruction.py index b490a7d..11e5d46 100644 --- a/PtyLab/Reconstruction/Reconstruction.py +++ b/PtyLab/Reconstruction/Reconstruction.py @@ -92,7 +92,10 @@ def __init__(self, data: ExperimentalData, params: Params): "purityProbe", "purityObject", "reference", - "intensity_mask" + "intensity_mask", + # multislice (e3PIE) transfer function, built on the host in + # e3PIE.initializeReconstructionParams and used inside the position loop + "H", ] # @property diff --git a/pyproject.toml b/pyproject.toml index 5d63894..bb3e095 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ptylab" -version = "0.2.6" +version = "0.2.7" description = "A cross-platform, open-source inverse modeling toolbox for conventional and Fourier ptychography" authors = [ { name = "Lars Loetgering", email = "lars.loetgering@fulbrightmail.org" }, diff --git a/tests/regression/data/e3pie_multislice.npz b/tests/regression/data/e3pie_multislice.npz new file mode 100644 index 0000000000000000000000000000000000000000..7df4e20612450424e116c6bb56d286d4a7ab14b2 GIT binary patch literal 71554 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�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 engine, propagator, (nlambda, nosm, npsm, nslice), iterations # -# Engines are added here as they become testable. e3PIE is still absent: it -# raises on its own betaProbe, so pinning it today would record a meaningless -# baseline. It joins this table in the PR that repairs it. +# Engines are added here as they become testable. Still absent: zPIE, aPIE and +# mPIE_tv, which do not run on this branch at all -- see the PRs that repair them. CONFIGS = { "epie_fraunhofer": ("ePIE", "Fraunhofer", (1, 1, 1, 1), 3), "epie_asp": ("ePIE", "ASP", (1, 1, 1, 1), 3), @@ -54,6 +53,7 @@ "mpie_single": ("mPIE", "Fraunhofer", (1, 1, 1, 1), 3), "mpie_mixed_state": ("mPIE", "Fraunhofer", (1, 2, 3, 1), 3), "qnewton_single": ("qNewton", "Fraunhofer", (1, 1, 1, 1), 3), + "e3pie_multislice": ("e3PIE", "Fraunhofer", (1, 1, 1, 3), 2), }