Error saying Layer 'conv2d_top': Invalid input data. Complex numbers are not supported".
이전 댓글 표시
Iam exploring with "Unsupervised day to dusk image translation using Unit", code is provided by matlab in the below link https://in.mathworks.com/help/images/unsupervised-day-to-dusk-image-translation-using-unit.html. I worked with my own dataset and in training divided the single image into six blocks , each blocks are individually trained. While training 2nd block of 1 st image,I got the error like.Please help me in resolving this.

function [genGrad,genLoss,images] = modelGradientGen(gen,discA,discB,ImageA,ImageB,lossWeights)
[ImageAA,ImageBA,ImageAB,ImageBB] = forward(gen,ImageA,ImageB);
hidden = forward(gen,ImageA,ImageB,Outputs="encoderSharedBlock");
OutputSize= [150 100] ;
ImageAA = dlresize(ImageAA,'OutputSize', OutputSize);
ImageAB = dlresize(ImageAB,'OutputSize', OutputSize);
ImageBA = dlresize(ImageBA,'OutputSize', OutputSize);
ImageBB = dlresize(ImageBB,'OutputSize', OutputSize);
[~,ImageABA,ImageBAB,~] = forward(gen,ImageBA,ImageAB);
cycle_hidden = forward(gen,ImageBA,ImageAB,Outputs="encoderSharedBlock");
ImageABA = dlresize(ImageABA,'OutputSize',OutputSize);
ImageBAB = dlresize(ImageBAB,'OutputSize',OutputSize);
% Calculate different losses
selfReconLoss = computeReconLoss(ImageA,ImageAA) + computeReconLoss(ImageB,ImageBB);
hiddenKLLoss = computeKLLoss(hidden);
cycleReconLoss = computeReconLoss(ImageA,ImageABA) + computeReconLoss(ImageB,ImageBAB);
cycleHiddenKLLoss = computeKLLoss(cycle_hidden);
outB = forward(discB,ImageAB);
outA = forward(discA,ImageBA);
advLoss = computeAdvLoss(outB)+computeAdvLoss(outA);
% Calculate the total loss of generator
genTotalLoss = ...
selfReconLoss*lossWeights.selfReconLossWeight + ...
hiddenKLLoss*lossWeights.hiddenKLLossWeight + ...
cycleReconLoss*lossWeights.cycleConsisLossWeight + ...
cycleHiddenKLLoss*lossWeights.cycleHiddenKLLossWeight+ ...
advLoss*lossWeights.advLossWeight;
% Update the parameters of generator
genGrad = dlgradient(genTotalLoss,gen.Learnables);
% Convert the data type from dlarray to single
genLoss = extractdata(genTotalLoss);
images = {ImageAA,ImageAB,ImageB,ImageBA};
end
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Neighborhood and Block Processing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!