-
Notifications
You must be signed in to change notification settings - Fork 19
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
Too many files can cause the fingerprinter to fail on Windows #79
Comments
Update: When I debug on vscode, I get a error on the internal of fastr.
Debug console
Console output stop at:
No more info about what's going on. |
Update 2: E:\WORC\Tmp\fingerprinter_MRI_0\all_fastr_stderr_.txt:
My data path is flat and shallow.
|
Solved the case: When processing fingerprinter, too many files will make WORC crash on Windows:
On Windows, Thus, do not pass files name by command line args. It is better to save them to a file and then pass the list file as input. |
Glad you found the issue. If you run into issues again, always use fastr trace to locate the error back to a specific sample in a specific sink, see https://fastr.readthedocs.io/en/stable/static/user_manual.html#debugging-a-network-run-with-errors. Regarding the error, it's difficult to change the command line execution as pass such arguments as lists, as WORC uses the fastr package for this and does not do this itself. I will ask the fastr developers whether they can change this. I would suggest to either manually execute the command now that you found it, but maybe easier is just to reduce the number of images used for fingerprinting. The default number of images for the fingerprinting is 100, see Hope that helps. |
Thank you for your framework and reply. But I'm afraid this option won't help with this issue (Looking back at the previous errors, WORC/WORC/tools/fingerprinting.py Lines 117 to 123 in 101642b
However, the failure mentioned above is occurred when fastr creating subprocess (starting a queued job). At that time, fingerprinting process did not yet exist. It is more of a limitation of fastr in Windows platform. It seems necessary to refactor the input/ouput form of Fingerprinting and related parts. Perhaps I can help. On the other hand, I tested my code on linux. It seems to run very well, except for a minor issue: BTW, does WORC have any pause-and-resume mechanism? Or add such functionality? Debugging with own data is indeed time-consuming. catch an error, run again from scratch, catch an error, run again from scratch, ... 😢 |
Thanks for the detailed reply! I was hoping you wouldn't hit the limit this way, but you're right, you still do, and this is a general limit on Windows. I've raised an issue at the fastr package which like I mentions performs the execution, and thus is responsible for this limitation, see https://gitlab.com/radiology/infrastructure/fastr/-/issues/1. For small experiments like the tutorial everything works fine, but if you perform larger experiments with more data, this issue persists. In the meanwhile, glad everything ran smoothly on Linux, hope pyradiomics fixes the bug soon. WORC does have a pause-and-resume mechanism build in. Again, this falls back on fastr which performs the execution, see also https://fastr.readthedocs.io/en/stable/static/user_manual.html#continuing-a-network. Summarizing, fastr saves all temporary output in a folder named after the experiment, and if you runb an experiment with the same name, will check which jobs have previously succesfully completed and rerun this. Hence, as long as you keep the experiment name the same in WORC , e.g., https://github.com/MStarmans91/WORCTutorial/blob/master/WORCTutorialBasic.py#L86 of the WORCTutorialBasic, WORC will automatically resume from where it ended previously. Note that it will look like all jobs are still running and nothing is skipped, but these jobs will just check whether the previous instances have succesfully run and the output is valid, so this should be very quick. I'll leave this issue open untill there is a fix in fastr. |
I follow the tutorial and fed my own data. The network execution finished but most of jobs/classification tasks failed.
I run
fastr trace E:/WORC/Tmp\__sink_data__.json --sinks
and get:Running on windows, python 3.7, install via pip.
WORC_config.py
:How to debug / find out any thing misconfigured?
BTW, does WORC has any pause-and-resume mechanism?
The text was updated successfully, but these errors were encountered: