Ziyan-Huang / FLARE22

Champion Solution of MICCAI FLARE22 Challenge and FLARE24 Task2 Challenge based on nnU-Net.
Apache License 2.0
62 stars 7 forks source link

New sliding window strategy #4

Open AN-AN-369 opened 1 year ago

AN-AN-369 commented 1 year ago

Where do you use your new sliding window strategy that I can't find in the code?

Ziyan-Huang commented 1 year ago

Hi @AN-AN-369,

Thank you for your interest in my new sliding window strategy. The implementation of this strategy can be found in the file at this link: https://github.com/Ziyan-Huang/FLARE22/blob/main/nnunet/network_architecture/neural_network.py

In particular, I would draw your attention to two key functions:

  1. _compute_steps_for_sliding_window
  2. _internal_predict_3D_3Dconv_tiled

These functions contain the core implementation of the new sliding window strategy. Please have a look and let me know if you have any further questions.

AN-AN-369 commented 1 year ago

Thank you for your answer about the new sliding window. We know that sliding Windows are used in the prediction phase, I wonder what is the difference between prediction and testing? I don't hear much about predicting this stage in other papers. According to nnUNet's original article, I understand that prediction is a test, I don't know if there is any problem with my understanding, please correct me if there is.

Ziyan-Huang commented 1 year ago

Hi @AN-AN-369,

Thank you for your question. In many contexts, "prediction" and "testing" are used interchangeably. However, sometimes they are used to denote slightly different stages of the process. Here's how they are typically differentiated:

Prediction: This refers to using the trained model to predict the output given new, unseen data. The aim here is not to evaluate the performance of the model but rather to use the model for its intended purpose, i.e., generating predictions for new data.

Testing: This is the process of evaluating the performance of a trained model. This is done by comparing the model's predictions on a separate testing dataset (for which the true outcomes are known) to the actual outcomes. The testing phase allows us to measure the model's generalization ability.

I hope this clarifies the distinction.