3-D Brain Tumor Segmentation ERROR

2 Ansichten (letzte 30 Tage)
Roberto
Roberto am 24 Aug. 2019
Hi all,
I'm getting the following error running the 3-D Brain Tumor Segmentation example
Error using trainNetwork (line 165)
Incorrect loss type returned by 'forwardLoss' in the output layer. Expected to be 'single', but instead was 'gpuArray'.
The output layer is dicePixelClassification3dLayer. It seems like there's some kind of error in the definition of that custom layer. Converting to single the outputs of the layer methods didn't help, same error.
If it's helpful I'm using r2019a on windows 10 on a i9 9900k + 1080ti.
Any Help?
Thanks
  6 Kommentare
Roberto
Roberto am 25 Aug. 2019
Bearbeitet: Roberto am 25 Aug. 2019
Unfortunately loss = gather(loss); doesn't work.
Also reducing patches per image only fixes the low on memory warning but not the type error in the output layer.
Only reducing the minibatch size seems to work but the resulting training seems definitely not effective.
Thank you for your help. I hope that r2019b will fix this issue.
Joss Knight
Joss Knight am 26 Aug. 2019
The type problem and the low memory warning go together. If you're getting the low memory warning, you have a real problem that needs addressing, otherwise training performance will be seriously affected. The fix for the type error will allow training to continue, but you'll still need to deal with the low memory issue.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Raunak Gupta
Raunak Gupta am 29 Aug. 2019
Hi,
The issue exposed here is related to low GPU memory. That being said, the following error should not be thrown. I have heard that this issue is known, and the concerned parties may be investigating further.
'Conversion to single from gpuArray is not possible'
A possible Workaround:
The attached patch will fix the error mentioned above, in the sense that the above error message will not be thrown if the training process errors out due to low GPU memory. Follow the steps below to apply the patch.
1) Save the attached zip file to your $MATLABROOT folder. The $MATLABROOT folder can be determined by running the ‘matlabroot’ command.
2) Using MATLAB, navigate to your $MATLABROOT folder by executing the command:
cd(matlabroot) in the MATLAB Command Window.
3) Execute the following command to unzip the file:
unzip('crop2dLayerPatch_18a_04_03_2018.zip')
You might need to start MATLAB as an administrator for this step.
4) Exit MATLAB and restart.
5) Execute the following command:
rehash toolboxcache
The GPU was running out of memory because the mini batch size is large and use up a lot of GPU memory. This value can be lowered by setting the "MiniBatchSize" parameter in the options that is passed to the "trainNetwork" function. I suggest you to start with 2 and if the problem doesn’t occur then you can increase the size in powers of 2.
The above should remove the error that is coming in trainNetwork.
  5 Kommentare
Raunak Gupta
Raunak Gupta am 29 Aug. 2019
Hi,
The size of 3D Volumes are very large that is why the memory requirement is generally high. For using larger MinBatchSize you have to increase the size of GPU memory proportionally.
Hope this helps.
Shubham Baisthakur
Shubham Baisthakur am 14 Nov. 2023
Hello there,
Just wondering if this problem has been fixed? I am getting the same error with my custom layer defined for the sequence-to-sequence LSTM regression. I am not getting any "GPU low on memory warning". I am working on Matlab R2022b.
Thanks

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Image Data Workflows finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by