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!