Train a GAN example difficulty
이전 댓글 표시
I am working through the example for using a GAN given here:
https://www.mathworks.com/help/deeplearning/ug/train-generative-adversarial-network.html
Undefined function 'projectAndReshapeLayer' for input arguments of type
'double'.
When I click on the word projectAndReshapeLayer, I get this:
You clicked a link that corresponds to this MATLAB command:
edit(fullfile(matlabroot,'examples','nnet','main','projectAndReshapeLayer.m'))
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
So when I paste this link into the Command Window, it simply creates a blank projectAndReshapeLayer.m file and the error persists.
What am I doing wrong?
To project and reshape the noise input, use the custom layer projectAndReshapeLayer, attached to this example as a supporting file. The projectAndReshapeLayer layer upscales the input using a fully connected operation and reshapes the output to the specified size.
filterSize = 5;
numFilters = 64;
numLatentInputs = 100;
projectionSize = [4 4 512];
layersGenerator = [
imageInputLayer([1 1 numLatentInputs],'Normalization','none','Name','in')
projectAndReshapeLayer(projectionSize,numLatentInputs,'proj');
transposedConv2dLayer(filterSize,4*numFilters,'Name','tconv1')
batchNormalizationLayer('Name','bnorm1')
reluLayer('Name','relu1')
transposedConv2dLayer(filterSize,2*numFilters,'Stride',2,'Cropping','same','Name','tconv2')
batchNormalizationLayer('Name','bnorm2')
reluLayer('Name','relu2')
transposedConv2dLayer(filterSize,numFilters,'Stride',2,'Cropping','same','Name','tconv3')
batchNormalizationLayer('Name','bnorm3')
reluLayer('Name','relu3')
transposedConv2dLayer(filterSize,3,'Stride',2,'Cropping','same','Name','tconv4')
tanhLayer('Name','tanh')];
lgraphGenerator = layerGraph(layersGenerator);
댓글 수: 8
Dong-Ho
2020년 5월 23일
I have also same problem with you !
Anybody tackle it please.
Hiroyuki Hishida
2020년 6월 3일
Hi,
Do you stll have this problem? Iy you have, please tell your MATLAB version.
version
I checked this issue under "9.8.0.1380330 (R2020a) Update 2" but can see "projectAndReshapeLayer" correctly.
HTH
Hiroyuki
mark palmer
2020년 6월 3일
SeungRyeol LEE
2020년 6월 24일
Use the livescripts not original scripts
Alexander Hagg
2020년 11월 7일
I found that file in the Matlab installation folder
R2020b/examples/nnet/main/projectAndReshapeLayer.m
Yonglei GUI
2021년 2월 21일
classdef projectAndReshapeLayer < nnet.layer.Layer
properties
% (Optional) Layer properties.
OutputSize
end
properties (Learnable)
% Layer learnable parameters.
Weights
Bias
end
methods
function layer = projectAndReshapeLayer(outputSize, numChannels, name)
% Create a projectAndReshapeLayer.
% Set layer name.
layer.Name = name;
% Set layer description.
layer.Description = "Project and reshape layer with output size " + join(string(outputSize));
% Set layer type.
layer.Type = "Project and Reshape";
% Set output size.
layer.OutputSize = outputSize;
% Initialize fully connect weights and bias.
fcSize = prod(outputSize);
layer.Weights = initializeGlorot(fcSize, numChannels);
layer.Bias = zeros(fcSize, 1, 'single');
end
function Z = predict(layer, X)
% Forward input data through the layer at prediction time and
% output the result.
%
% Inputs:
% layer - Layer to forward propagate through
% X - Input data, specified as a 1-by-1-by-C-by-N
% dlarray, where N is the mini-batch size.
% Outputs:
% Z - Output of layer forward function returned as
% an sz(1)-by-sz(2)-by-sz(3)-by-N dlarray,
% where sz is the layer output size and N is
% the mini-batch size.
% Fully connect.
weights = layer.Weights;
bias = layer.Bias;
X = fullyconnect(X,weights,bias,'DataFormat','SSCB');
% Reshape.
outputSize = layer.OutputSize;
Z = reshape(X, outputSize(1), outputSize(2), outputSize(3), []);
end
end
end
function weights = initializeGlorot(numOut, numIn)
% Initialize weights using uniform Glorot.
varWeights = sqrt( 6 / (numIn + numOut) );
weights = varWeights * (2 * rand([numOut, numIn], 'single') - 1);
end
Rahul Gowtham Poola
2023년 2월 5일
Error using dlnetwork/validateForwardInputs
Layer 'in': Invalid input data. Invalid number of spatial dimensions. Layer expects 2 but received 0.
zahoor m
2023년 12월 12일
Layer 'input': Invalid input data. Invalid number of spatial dimensions. Layer expects 2 but received
0.
채택된 답변
추가 답변 (3개)
soliya
2020년 6월 11일
2 개 추천
댓글 수: 1
Yonglei GUI
2021년 2월 21일
Hello, my matlab has no the file minibatchqueue.m, so may you give me a URL like this? or you can send email narutomst@163.com. Thank you very much!
Ieuan Evans
2020년 6월 25일
편집: Ieuan Evans
2020년 6월 25일
0 개 추천
This example was updated in R2020a to use this custom layer. If you use the command openExample('nnet/TrainGenerativeAdversarialNetworkGANExample') in MATLAB, then it will open the correct version of this example for your version of MATLAB.
Hope this helps.
Ramyakrishna
2022년 10월 24일
0 개 추천
Replace the line with the below line
projectAndReshapeLayer(projectionSize,numLatentInputs,Name='proj')
댓글 수: 1
Dikshya Surabhi
2025년 7월 22일
It's not working.. I tried it
projectAndReshapeLayer(projectionSize,numLatentInputs, 'Name', 'proj');
And I still got the error:
'projectAndReshapeLayer' is used in the following examples:
Generate Synthetic Signals Using Conditional GAN
Train Variational Autoencoder (VAE) to Generate Images
Include Custom Layer in Network
Train Generative Adversarial Network (GAN)
Train Wasserstein GAN with Gradient Penalty (WGAN-GP)
Error in cgan (line 27)
projectAndReshapeLayer(projectionSize,numLatentInputs, 'Name', 'proj');
카테고리
도움말 센터 및 File Exchange에서 Install Products에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!