Anomaly detection using Variational Autoencode​r(VAE)のサンプ​ルコードエラーについ​て

こちらのサンプルコードを動かそうとしています。
最初の画像サイズの部分に関しましては入力画像に応じて変更できるように下記のように書き換えました。
Imgsize = size(readimage(imdsTrain,1)); % 画像サイズ
BlockSize = round(Imgsize(1:2)./10);% ネットワークの入力サイズ
その後実行を続けていくとモデルの学習の部分で下記のようなエラーが返されます。
配列のサイズがこの演算に適合しません。
エラー: deep.internal.recording.operations.MinusBroadcastOp/forward (32)
x = x - y;
エラー: - (39)
zdata = matlab.lang.internal.move(xdata) - matlab.lang.internal.move(ydata);
エラー: VAEmodel_ver2>ELBOloss (188)
squares = 0.5*(xPred-x).^2;
エラー: VAEmodel_ver2>modelGradients (165)
loss = ELBOloss(x, xPred, zMean, zLogvar);
エラー: deep.internal.dlfeval (18)
[varargout{1:nout}] = fun(x{:});
エラー: dlfeval (41)
[varargout{1:nout}] = deep.internal.dlfeval(fun,varargin{:});
関連ドキュメンテーション
こちらに関する解決方法はありますでしょうか。
宜しくお願い致します。

 Respuesta aceptada

Hernia Baby
Hernia Baby el 28 de Jun. de 2021

2 votos

BlockSize = round(Imgsize(1:2)./10);
BlockSizeが [72 128] となっており、入力サイズがあってないのだと思います。
この場合、Blocksize = Blocksize * 2;で解決します。

3 comentarios

ご回答ありがとうございます。
こちらを試させていただきましたが解決できませんでした。
しかし、コードをたどっていくと確かにサイズの問題が原因そうです。
今回入力画像は1200×1200を使用しており、回答を適応しましてBlockSizeは240×240になります。
この状態でモデルの学習部分にある
[infGrad, genGrad] = dlfeval(...
@modelGradients, encoderNet, decoderNet, XBatch);
を適応しようとしてエラーが出ていました。
ここに入力される前のXBatchのサイズは240×240×3×64ですが、
modelGradients内のxPredのサイズが144×256×3×64になっており、ここでサイズの差が出ていることが分かりました。
しかしmodelGradients内のxPredがどこを見て144×256を持ってきたが分かりません。
お手数ですが宜しくお願い致します。
Hernia Baby
Hernia Baby el 29 de Jun. de 2021
入力層と隠れ層の一部を自在なサイズに変更したいということでしょうか? 個人的には入力層のサイズに合わせた方がいいかなあと思いました。 imresize を参照ください。今回、スマホでコメントしていますので、コードそのものを確認する場合は少し時間がかかります。
和神 水ノ江
和神 水ノ江 el 30 de Jun. de 2021
ご回答・ご提案ありがとうございます。
意図としましてはおっしゃられている内容で合っています。
ご提案していただきましたimresizeで対応してみようと思います。
ありがとうございました。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Deep Learning Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 28 de Jun. de 2021

Comentada:

el 30 de Jun. de 2021

Community Treasure Hunt

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

Start Hunting!