ValueError: operands could not be broadcast together with shapes in micrograph denoiser

Hey,

I encountered an error during inference of the micrograph denoiser:

[CPU:   2.33 GB  Avail: 459.97 GB]
Completed training in 798.0 seconds.

[CPU:   2.33 GB  Avail: 460.06 GB]
Starting denoising of input micrographs.

[CPU:   2.25 GB  Avail: 460.29 GB]
Traceback (most recent call last):
  File "cryosparc_master/cryosparc_compute/run.py", line 129, in cryosparc_master.cryosparc_compute.run.main
  File "cryosparc_master/cryosparc_compute/jobs/micrograph_analysis/run_denoise.py", line 418, in cryosparc_master.cryosparc_compute.jobs.micrograph_analysis.run_denoise.run_train
ValueError: operands could not be broadcast together with shapes (480,512) (512,512) (480,512)

I tested multiple workstations (RTX4000Ada, RTX4090, RTX3080Ti), all of which run cryoSPARC v4.7.1-cuda12+250814.

The movies used were collected on a K3 at 215kx magnification, and I binned them 2x to 0.7786 Å/pix. I also tried to re-run motion correction or to use the pre-trained model without success.

I would be happy about help!

Best,

Ole

Hi @OleUns, unfortunately this is a limitation of the denoiser. Micrographs collected at high magnification do not have a physical extent large enough to be denoised as the job is currently built.

We have noted that users occasionally need to denoise micrographs with a small physical extent, but unfortunately there is not a workaround in the meantime.

@rwaldo Thank you for the answer!

Indeed, the data was collected at an unusual magnification (215kx) using a K3. The pixel size is around 0.3 Å/pix, during motion correction, I binned to around 0.6 Å/pix.

If I understand you correctly, binning to a larger pixel size during motion correction would be a potential workaround for now? If that’s the case, what is the smallest pixel size the denoiser can work with?

Hi @OleUns, unfortunately the problem is not the pixel size – it’s the physical extent of the micrograph. I explain a bit more in this post, but essentially the denoiser requires the micrograph to be at least ~1500x1500 Å. If you downsample your micrograph the pixel size gets larger, but the micrograph gets smaller, so the physical extent remains too small for the denoiser to work.

1 Like