minibatchqueueとnext関数について
2 views (last 30 days)
Show older comments
こんにちは。 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になっているのか疑問です。
勉強不足で申し訳ありませんが、教えて頂けると幸いです。宜しくお願い致します。
0 Comments
Accepted Answer
Kenta
on 10 Jul 2021
こちらのページをご参照ください。2というのはnumOutputsに対応していて、今回は、訓練する画像とそのラベル(BBOX)情報が取り出されるのではないでしょうか。バッチサイズに関してですが、こちらは、例えば、30のサンプルがあったとして、16をミニバッチサイズとしたら、最後の取り出しでは14しかないので、その値になっている、というふうなことではないでしょうか。
More Answers (0)
See Also
Categories
Find more on イメージを使用した深層学習 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!