DIAGNijmegen / neural-odes-segmentation

Neural Ordinary Differential Equations for Semantic Segmentation of Individual Colon Glands
MIT License
106 stars 28 forks source link

reproduce #6

Closed qmiwang closed 3 years ago

qmiwang commented 4 years ago

I run the notebook "train_models" many times and can not achieve the results reported in the given paper, for example, overfitting occurs in the training of UNet. Is there something wrong? Many Thanks!!!

qmiwang commented 4 years ago

the last cell raises the error:

ValueError: attempt to get argmin of an empty sequence

I have run the with default args, epoch=600

hanspinckaers commented 4 years ago

Thanks for reporting. If time allows, I will rerun my experiments and let you know! Maybe some code changed when going from private to this repo.

qmiwang commented 4 years ago

Thanks for reporting. If time allows, I will rerun my experiments and let you know! Maybe some code changed when going from private to this repo.

I really appreciate your help, and I look forward to your reply as soon as possible.

hanspinckaers commented 4 years ago

I didn't yet retrain, but there was a bug in the inference code. Maybe you could try your trained model again? I also provided the weights from the original models.

qmiwang commented 4 years ago

I didn't yet retrain, but there was a bug in the inference code. Maybe you could try your trained model again? I also provided the weights from the original models.

Thanks for your reply.

I have pulled the new repository and run the codes. Some results are as follows:

Unet ObjectDice: 0.8518028503808965 A 0.874161861905812 B 0.78472581580615 Hausdorff: 78.2695392619059 A 60.66718421776105 B 131.07660439434045 F1: 0.8285704791346327 A 0.8642392620748002 B 0.72156413031413 UNET ObjectDice: 0.839183339388209 A 0.8604148494098721 B 0.7754888093232196 Hausdorff: 86.21362225804089 A 69.56000172986113 B 136.17448384258014 F1: 0.7877480633441978 A 0.8276782793283889 B 0.6679574153916242

ResNet ObjectDice: 0.8042210310231501 A 0.84097816241136 B 0.6939496368585207 Hausdorff: 101.57463784572667 A 74.2468003248991 B 183.5581504082094 F1: 0.740263933706883 A 0.7934624557491335 B 0.5806683675801316

RESNET ObjectDice: 0.7980485610902738 A 0.8268265648505505 B 0.7117145498094437 Hausdorff: 106.09405631625407 A 85.35489385410271 B 168.31154370270815 F1: 0.734405681350286 A 0.7865217148124058 B 0.5780575809639267

NODE ObjectDice: 0.8656351347998908 A 0.8888414541172278 B 0.7960161768478802 Hausdorff: 70.74594520566231 A 52.3525271533106 B 125.92619936271743 F1: 0.8325240546021899 A 0.8749114672875777 B 0.7053618165460265

By the way, I have tried to load the model weights given in the new repository, but some error raise: ----> 3 torch.load("./best_border_unet_paper.pt")

~/.pyenv/versions/3.7.2/lib/python3.7/site-packages/torch/serialization.py in load(f, map_location, pickle_module, pickle_load_args) 384 f = f.open('rb') 385 try: --> 386 return _load(f, map_location, pickle_module, pickle_load_args) 387 finally: 388 if new_fd:

~/.pyenv/versions/3.7.2/lib/python3.7/site-packages/torch/serialization.py in _load(f, map_location, pickle_module, pickle_load_args) 561 f.seek(0) 562 --> 563 magic_number = pickle_module.load(f, pickle_load_args) 564 if magic_number != MAGIC_NUMBER: 565 raise RuntimeError("Invalid magic number; corrupt file?")

UnpicklingError: invalid load key, 'v'.

hanspinckaers commented 3 years ago

I'm afraid the problem is that an old version of PyTorch was used to save everything. I believe it was around the 1.0 release. I don't really have time to convert the weights, but others have succeeded in loading them. Due to old age of this issue I'm gonna close it.