Deep Learning: Training Network with "parallel" option using only CPUs

14 views (last 30 days)
Hi,
I am trying to train a network using the follow parameters:
miniBatchSize = 10;
clear NewNetIn3D
valFrequency = floor(numel(imdsTrain)/miniBatchSize);
options = trainingOptions('sgdm', ...
'MiniBatchSize',miniBatchSize, ...
'MaxEpochs',6, ...
'InitialLearnRate',1e-5,...
'Shuffle','never',...
'ExecutionEnvironment','parallel',...
'Verbose',false, ...
'Plots','training-progress');
net = trainNetwork(imdsTrain,LabelsTrain,LayersBMC,options);
Since my graphic card is not super, I am trying to run the code using multiple CPUs, but the parallel option always go with multiple GPUs and then crashes. Is there any way to restrict the paralel pool to use only CPUs? If I define the option 'cpu' it works, but with only one core.

Accepted Answer

Joss Knight
Joss Knight on 16 Dec 2019
Even with a weak graphics card you will usually see better performance than on multiple CPUs. However, to try it out, after you start MATLAB, type
setenv CUDA_VISIBLE_DEVICES -1
  13 Comments
Joss Knight
Joss Knight on 8 Oct 2020
That's nothing. You had a bunch of MATLABs running to do your parallel training, you stopped using them, so eventually they were terminated.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!