お世話になっております。
以前、「Conditional VAE (Variational Auto Encoder) 条件付きVAE」をご紹介頂き
お勉強させて頂いております。
本プログラムを自身のGPU搭載PCを使って学習させたいと思い、doTraining=1; にしてみました。
しかしエラーになってしまい、解決方が解らず悩んでおります。
どのようにすれば、GPUでの学習が可能になるか、ご教授頂きたく、よろしくお願いいたします。
***** 以下エラーです ******************************
エラー: dlfeval
層 'emb': 入力データが無効です。 層 'embedAndReshapeLayer' において、'predict' の 'Z' のタイプが正しくありません。
'single' が必要ですが、代わりに 'gpuArray' となっていました。
エラー: Conditional_VAE
[infGrad, genGrad] = dlfeval(...
**********************************************
以下のように doTraining=1; とすると上記のエラーになります。
なお、以下のコードの下3行(太字記載)を %で伏せるとエラーにはなりませんが、
GPUが使えない事になり、困惑しております。
Train Model
doTraining=1;
if doTraining==1
for epoch = 1:numEpochs % the tranining data is learned in total of "numEpochs" times
tic;
for i = 1:numIterations
iteration = iteration + 1;
idx = (i-1)*miniBatchSize+1:i*miniBatchSize;
XBatch = XTrain(:,:,:,idx);
XBatch = dlarray(single(XBatch), 'SSCB');
YBatch = permute(YTrain(idx),[2 3 4 1]);
% For example, the 2nd dimension goes to 4th dimension
YBatch = dlarray(single(YBatch), 'SSCB');
if (executionEnvironment == "auto" && canUseGPU) || executionEnvironment == "gpu"
XBatch = gpuArray(XBatch);
end