Algorithm failed on phase 2

Algorithm failed on phase 2  

  By: tle1302 on April 19, 2024, 2:51 p.m.

Hi Dorian,

Unfortunately my algorithm (same container build that passed phase1, just updated weights) failed phase 2, and without error log I cannot debug (only: "The algorithm failed on one or more cases.").

Ome.tiff read_image() and save_image() are from your script in the template docker. Local test succeeded, "Try-out algorithm" succeeded without warnings on the updated container. The algorithm also doesn't exceed time limit (<3min in grand challenge platform).

Is there a different data type on Phase 2, which doesn't work with the read_image() function provided? Was there a backend crash? Can you help debug? I thought all errors (input/output/environment etc) are supposed to be caught on phase1, and passing phase 1 was supposed to guarantee to pass phase 2, but unfortunately this was not the case.

Re: Algorithm failed on phase 2  

  By: tle1302 on April 19, 2024, 9 p.m.

Hi, it seems that my submission passed. In case anyone else is debugging a similar problem, what I lack was handling empty images as input.

 Last edited by: tle1302 on April 19, 2024, 9:02 p.m., edited 1 time in total.

Re: Algorithm failed on phase 2  

  By: MountainHill on April 20, 2024, 4:22 a.m.

Hi, would you mind elaborate your workaround a bit? I had the similar issue but I'm not sure what you mean by empty images as input. Should I check if the input image path exists or not? Also, for the challenge organizers, would it be possible to see some error logs?

Re: Algorithm failed on phase 2  

  By: MountainHill on April 20, 2024, 8:42 p.m.

It would be greatly appreciated if someone could clarify the issue. It seems weird to me that a successful docker submission in phase 1 failed in phase 2... I've tried to use try and except to solve the issue but the issue persisted. Not sure how phase 2 would be different from phase 1.

Re: Algorithm failed on phase 2  

  By: tle1302 on April 20, 2024, 10:37 p.m.

Hi! I agree that all data type (microscopy, range etc) should be presented in phase 1. For me, I have some preprocessing script containing assert, which failed when the input value is just 0. So my solution was simply:

bf_input = read_image(bf_path)
If bf_input.max() == 0:
    # write out all 4 organelle channel to be empty too
    save_image(org_path, bf_input) # x4 channels
else:
    # my algorithm

Hope the organizers allow 1 final submission for whoever tried to submit before deadline but failed for unjust reason. It is unfortunate to let valuable effort go to waste.

Re: Algorithm failed on phase 2  

  By: dorian_kauffmann on April 22, 2024, 10 a.m.

Hello,
I've checked again and there are indeed no empty images in the GT Phase 2 dataset. Normally, nothing changes between Phase 1 and Phase 2, and I've made a lot of effort to respect this.
After investigation, it appears that MountainHill and tle1302, you have exceeded the 10-minute time limit for predicting some individual images.
So there is no log stderr error, but, as we set a time limit (for practical and especially financial reasons), Grand Challenge reported that the image prediction had failed.
It took me a while to realize this.
As the error did not come from us, I need to discuss it with the challenge team to see what can be done, and to be fair to the other participants who managed to submit their project on time.

Sincerely
Dorian