cuixing158 / yolov3-yolov4-matlab

Import and export Darknet™ models within MATLAB deep learning networks.
93 stars 44 forks source link

GPUArray get error #15

Open willy90806k opened 3 years ago

willy90806k commented 3 years ago

Hi. When I'm training yolov4-tiny and setting my executionEnvironment setting is 'gpu', Matlab will print:

Error using gpuArray/subsasgn When assigning into a GPUArray, the subscripts must contain unique values.Subscript 2 contained repeated values.

Error in dlarray/parenAssign (line 53) objdata(argsNonDlarray{:}) = rhsdata;

Error in train>modelGradients (line 229) tcls_(idx,tcls+1) = 1.0;% 确保类别标签是从0开始标注的索引,否则这里会超出维度

Error in deep.internal.dlfeval (line 18) [varargout{1:nout}] = fun(x{:});

Error in dlfeval (line 41) [varargout{1:nout}] = deep.internal.dlfeval(fun,varargin{:});

Error in train (line 121) [gradients,boxLoss,objLoss,clsLoss,totalLoss,state] = dlfeval(@modelGradients, model, XTrain, YTrain,yoloLayerNumber);

But if I change executionEnvironment to 'cpu' ,it can successfully do training. Can you give me some clues about what happened?

Thank for help.

Hind-colla commented 3 years ago

Hi. When I'm training yolov4-tiny and setting my executionEnvironment setting is 'gpu', Matlab will print:

Error using gpuArray/subsasgn When assigning into a GPUArray, the subscripts must contain unique values.Subscript 2 contained repeated values. Error in dlarray/parenAssign (line 53) objdata(argsNonDlarray{:}) = rhsdata; Error in train>modelGradients (line 229) tcls_(idx,tcls+1) = 1.0;% 确保类别标签是从0开始标注的索引,否则这里会超出维度 Error in deep.internal.dlfeval (line 18) [varargout{1:nout}] = fun(x{:}); Error in dlfeval (line 41) [varargout{1:nout}] = deep.internal.dlfeval(fun,varargin{:}); Error in train (line 121) [gradients,boxLoss,objLoss,clsLoss,totalLoss,state] = dlfeval(@modelGradients, model, XTrain, YTrain,yoloLayerNumber);

But if I change executionEnvironment to 'cpu' ,it can successfully do training. Can you give me some clues about what happened?

Thank for help.

Hello, please i have the same issue have you solve it?

Hind-colla commented 3 years ago

And how did you change executionEnvironment to 'cpu'? Did you delete those lines? if (executionEnvironment == "auto" && canUseGPU) || executionEnvironment == "gpu" XTrain = gpuArray(XTrain); end I can't use GPU, so i have deleted those lines but It's not working for me. I get these error : 'modelGradients' is used in Generate Synthetic Signals Using Conditional Generative Adversarial Network.

Error in deep.internal.dlfeval (line 18) [varargout{1:nout}] = fun(x{:});

Error in dlfeval (line 41) [varargout{1:nout}] = deep.internal.dlfeval(fun,varargin{:});

Error in nouveux (line 94) [gradients,boxLoss,objLoss,clsLoss,totalLoss,state] = dlfeval(@modelGradients, model, XTrain, YTrain,yoloLayerNumber);

What did you do please?

MikeMegamind commented 3 years ago

Hi, I have the same error. Could you please tell us how to change executionEnvironment to 'cpu' ? Thanks a lot.