i have a problem with modelGradients
    9 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Hind Haboubi
 el 4 de Mayo de 2021
  
    
    
    
    
    Comentada: debojit sharma
 el 16 de Jun. de 2023
            Hello guys, i'm trying to run the exemple from : https://www.mathworks.com/matlabcentral/fileexchange/75305-yolov3-yolov4-matlab
When i run thus section : 
for numEpoch = 1:nEpochs
    reset(preprocessedTrainingData);% Reset datastore.
    iteration = 0;
    while hasdata(preprocessedTrainingData)
        t_start = tic;
        % Custom training loop.
        % Read batch of data and create batch of images and
        % ground truths.
        outDataTable = read(preprocessedTrainingData);
        XTrain = outDataTable{1,1}{1};
        YTrain = outDataTable{1,2}{1};
        if isempty(YTrain)
            continue;
        end
        % Convert mini-batch of data to dlarray.
        XTrain = dlarray(single(XTrain),'SSCB');
  % Evaluate the model gradients and loss using dlfeval and the
        % modelGradients function.
        [gradients,boxLoss,objLoss,clsLoss,totalLoss,state] = dlfeval(@modelGradients, model, XTrain, YTrain,yoloLayerNumber);
I get this 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); 
0 comentarios
Respuesta aceptada
  Arianna Pryor
 el 12 de Mayo de 2021
        I got a similar error when trying to run the VAE example. I had to use another modelGradients function.
function [infGrad, genGrad] = modelGradients(encoderNet, decoderNet, x)
[z, zMean, zLogvar] = sampling(encoderNet, x);
xPred = sigmoid(forward(decoderNet, z));
loss = ELBOloss(x, xPred, zMean, zLogvar);
[genGrad, infGrad] = dlgradient(loss, decoderNet.Learnables, ...
    encoderNet.Learnables);
end
1 comentario
  debojit sharma
 el 16 de Jun. de 2023
				I am also facing the same problem while trying to train VAE for RGB image. @Arianna Pryor Can you please kindly tell me in which part of the code have you used this modelGradients function? 
Más respuestas (1)
  Mohamed Marei
 el 26 de Jul. de 2021
        
      Editada: Mohamed Marei
 el 26 de Jul. de 2021
  
      Because MATLAB sees both of these functions which share the same name on the path, it doesn't know which one to use for each example. Therefore, it may be better practice to copy the internals of this function into a different function (more appropriate for your example), i.e. 
function [gradients, boxLoss, objLoss, clsLoss, totalLoss, state] = ...
    yoloModelGradients(network, Xtrain, Ytrain, yoloLayerNumber)
    % loss, gradients, and states definitions go here.
end
After that, replace the call to the old modelGradients function in your call to dlfeval:
% Evaluate the model gradients and loss using dlfeval and the
        % yoloModelGradients function.
        [gradients,boxLoss,objLoss,clsLoss,totalLoss,state] = dlfeval(@yoloModelGradients, model, XTrain, YTrain,yoloLayerNumber);
Hope you've managed to get it fixed since then!
0 comentarios
Ver también
Categorías
				Más información sobre Get Started with Deep Learning Toolbox en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



