minibatchq​ueueとnext関​数について

3 ビュー (過去 30 日間)
HY
HY 2021 年 7 月 5 日
コメント済み: HY 2021 年 7 月 12 日
こんにちは。 yoloV3を学習させようとしているのですが、その際に出てくるminibatchqueueとnext関数がよくわかりません。 minibatchqueueはなんとなく、学習データをミニバッチサイズに分割してくれる関数のように理解していますが、それで合っていますでしょうか。
mbqTrain = minibatchqueue(preprocessedTrainingData, 2,...
"MiniBatchSize", miniBatchSize,...
"MiniBatchFcn", @(images, boxes, labels) createBatchData(images, boxes, labels, classNames), ...
"MiniBatchFormat", ["SSCB", ""],...
"DispatchInBackground", dispatchInBackground,...
"OutputCast", ["", "double"]);
上記のコードですと前処理した学習データを身にバッチサイズに分割していると思うのですが、preprocessedTrainingDataの横に2が記載されていますが、これは何に関係しているのでしょうか?
また、[XTrain YTrain]=next(mbq)は具体的にどんな処理を行っているのでしょうか。画像とラベルに分割しているのでしょうか?処理後のXTrainの値を見ると[227×227×3×13]となっており、13の値はバッチサイズであると記載されているのですが、私はミニバッチサイズを16と設定しているため、なぜ13になっているのか疑問です。
勉強不足で申し訳ありませんが、教えて頂けると幸いです。宜しくお願い致します。

採用された回答

Kenta
Kenta 2021 年 7 月 10 日
こちらのページをご参照ください。2というのはnumOutputsに対応していて、今回は、訓練する画像とそのラベル(BBOX)情報が取り出されるのではないでしょうか。バッチサイズに関してですが、こちらは、例えば、30のサンプルがあったとして、16をミニバッチサイズとしたら、最後の取り出しでは14しかないので、その値になっている、というふうなことではないでしょうか。
  1 件のコメント
HY
HY 2021 年 7 月 12 日
kenta様。
ご回答頂きありがとうございます。
なるほど、2点とてもわかりやすく、理解できました。ありがとうございます。
next関数はmbqでミニバッチごとに作成したデータ?を取り出す処理であっていますでしょうか?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDeep Learning Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!