-
Notifications
You must be signed in to change notification settings - Fork 189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SART algorithm stuck in "set_w" when the input image is large #496
Comments
HI, @JiahaoPlus, |
I use RTX 8000 and use the eval.py to test. |
Hi @AnderBiguri, by "stuck" I mean the algorithm keeps running in Line 222 and there is no response. I found it out by setting checkpoints and running line by line. I use A5000 GPU. |
TIGRE demo TIGRE/Python/demos/d07_Algorithms02.py with head phantom data works well, but here the CT size is small (64x64x64). |
Hi @JiahaoPlus , you can change the head phantom to any size when you call it, can you try to make it the same size as your data? I am just trying to figure out what is going on, as I have reconstructed images >2000^3, and while that call, Ax, takes long at big images, it shouldn't be more than few seconds at your image size |
Hi @AnderBiguri, thanks for your reply! I changed the head phantom size to 512x512x512, and it worked well. However, my data cannot work. I guess the problem comes from the "geometry" parameters. If I multiply the "geo.dVoxel" by 1000 (or 100, or 10) in my data, it will not get stuck, but the reconstructed image is wrong (because of the wrong geo.dVoxel). Hereby I attach the minimal code to reproduce the problem (you can download the data here and change the path):
When I print "geo", I got:
Thank you very much for looking into it! |
Hi @AnderBiguri, if I change the tigre version to 2.3, everything works well! The same code could not work in the current version (2.5). |
Hum, interesting @JiahaoPlus. Are you using a conda enviroment? Are you able to provide the versions of the libraries you are using with e.g. I ask because TIGRE 2.5 changed some things to account for updates that break compatibility by numpy and cython. It may be possible that your code is hanging in a weird way if you don't have the newest versions of these libraries. But if that is the case, the smart thing for TIGRE to do would be to catch it at e.g. install time and warn you about incompatibilities, instead of silently hanging sometimes. It may be related to #492 , perhaps. I ping @tsadakane just because they had a look at this in the past and may know whats going on, but no expectations of replying or trying to fix it, tsadakane! |
Hi @AnderBiguri, yes I am using conda. Here is the conda list with the newest TIGRE (2.5) which could not run well on my data (some packages are not relevant to TIGRE, but just in case, I put all of them here):
Here is the TIGRE 2.3 related conda list that can work well:
|
A brief summary, in my 2 conda environments: With TIGRE 2.5, With TIGRE 2.3, |
I made two fresh virtual environments of conda
and built tigre (4598aaa) by
In both environments, the program given at #496 (comment) worked with the given data at the fist comment. My PC's OS is Windows 10 + CUDA 11.8 and its GPUs are
so I used 0 and 1 by modifying the program given at #496 (comment) by adding the following lines
I also added lines for plots so that I can check the reconstructed volume. The result of
in the virtual env.
|
Thanks a lot @tsadakane. |
Behavior
When I ran iterative methods like SART on a CT scan (512×512×463, can be downloaded here), it was stuck in "set_w" (w=Ax(...)) when initializing IterativeReconAlg class (link to the code). Do you know the possible reason and how to fix it?
Smaller images (like 256×256×256) work well. Running FDK on the 512×512×463 CT also works well.
Code to reproduce the problem (If applicable)
where "projections, geo, angles" can be obtained from the CT pickle file I attached above.
Specifications
(Data reference: Zha et. al, NAF)
Thanks!
The text was updated successfully, but these errors were encountered: