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!