GAN problem at dlnetwork

9 views (last 30 days)
nasir mehmood
nasir mehmood on 23 May 2020
Commented: Sophia Lloyd on 28 Jun 2020
Error in testing_gan (line 54)
dlnetGenerator = dlnetwork(lgraphGenerator)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Error in dlnetwork (line 3)
imageInputLayer([64 64 1], 'Name', 'input', 'Mean', mean(XTrain,0))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Error in mean (line 127)
y = sum(x, dim, flag) ./ mysize(x,dim);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Error using sum
Invalid data type. First argument must be numeric or logical.
  3 Comments
Sophia Lloyd
Sophia Lloyd on 28 Jun 2020
For me, the code in the example that you linked runs as expected.
It seems like you may have modified and saved the original example. There's no function or script named testing_gan in the original example.
From the errors you provided, the problem seems to be the mean value used in the imageInputLayer, which is causing the error inside dlnetwork when it initializes the layer.
imageInputLayer([64 64 1], 'Name', 'input', 'Mean', mean(XTrain,0))
I don’t know how you are providing XTrain, as that variable is not present in the example you linked. Is it a datastore? That would explain the error in sum inside mean.
It would help if you provide the exact code that is causing the error.

Sign in to comment.

Answers (1)

Mahmoud Afifi
Mahmoud Afifi on 23 May 2020
Can you please give a link to the original code? In meanwhile, have a look at this github page . It has several GANs with Matlab implementation.
  5 Comments
Sophia Lloyd
Sophia Lloyd on 28 Jun 2020
It is possible to train a GAN on a CPU, though usually not recommended as it will be very slow.
The example https://www.mathworks.com/help/deeplearning/ug/train-generative-adversarial-network.html will run on the CPU there is no GPU available.
The examples in the GitHub page assume that you have a GPU. If you do not, you need to modify the code and remove the call to gpuArray. This should be enough to run the code on the CPU.
If you do have a supported GPU, you need a suitable driver for your device and platform. We recommend you use the most up-to date driver for your device. You can get drivers from NVIDIA here: https://www.nvidia.com/Download/index.aspx. You can check if your GPU is supported here: https://www.mathworks.com/help/parallel-computing/gpu-support-by-release.html
To use the GPU for training, you only need the driver. You do not need to install the CUDA Toolkit.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!