エラーコード エラー: trainNetwork (行 184) 無効な学習データです​。回帰タスクの応答は​、数値応答のベクトル​、行列または 4D 配列でなければなりません。応答に NaN を含めてはなりません。

8 次查看(过去 30 天)
imds = imageDatastore('機械学習500',"IncludeSubfolders",true,"LabelSource","foldernames");
T = imshow(readimage(imds,1));
data = augmentedImageDatastore([5000 10],imds,"ColorPreprocessing","rgb2gray")
画像とラベルの定義
imagefiles = imds.Files
imagelabels = imds.Labels;
ytraining = imds.Labels;
yval = imds.Labels;
data1 = readall(data);
A = data1.input
B = data1.response
%T = table(imagefiles,imagelabels,'~',"VariableNames",{'image1','label1'})
Dt= zeros(128,128,1,5000);
Dv = zeros(128,128,1,5000);
for i=1:numel(imds.Files)
I = imread (imds.Files{i});
Dt(:,:,1,i) = I;
II = imread (imds.Files{i});
Dv(:,:,:,i) = II;
end
net = trainNetwork(Dt,B,layers,options); Bの処理がわかりません。
エラーコード エラー: trainNetwork (行 184) 無効な学習データです。回帰タスクの応答は、数値応答のベクトル、行列または 4D 配列でなければなりません。応答に NaN を含めてはなりません。

采纳的回答

Atsushi Ueno
Atsushi Ueno 2022-7-5
【回答1】上記質問と同じく、カテゴライズ型の応答データ(B)を数値に変換すればエラーは解消するはずです。回帰用のCNN学習に対してカテゴライズ型の応答データを入力する為エラーが発生していると想定します。
B = double(B);
【回答2】手書き数字画像が0~9のどれか認識させたいのであれば「回帰タスク」ではなく「分類タスク」を選択すべきです。具体的には学習させるCNNレイヤの最後の回帰レイヤを分類レイヤに変更します。
layers = [ % (途中省略) ...
regressionLayer]; %【変更前】
layers = [ % (途中省略) ...
classificationLayer]; %【変更後】
【詳細な説明と想定した事】
imds = imageDatastore('機械学習500',"IncludeSubfolders",true,"LabelSource","foldernames");
imageDatastore関数の1番目の引数(location)に当たる'機械学習500'が何なのか明示されていませんが、過去の質問の経緯からdigitTest4DArrayData関数で読み取る「深層学習用のデータセット」の内「数字データセット」だと思います。そのフォルダ構成は以下の様になっており、手書き数字画像10,000ファイルが10個のフォルダ(0~9)に分類されています。これを上記imageDatastore関数で読み込むとフォルダ名が「応答(数値情報)」としてカテゴライズ型のデータになります。
ls /MATLAB/toolbox/nnet/nndemos/nndatasets/DigitDataset/
0 1 2 3 4 5 6 7 8 9 digitTest.csv digitTrain.csv
もしそうだとすれば、目的(手書き数字画像が0~9のどれか認識したい)に対して「分類タスク」を選択すべきです。「回帰タスク」を選んだという事は「予測子(イメージ)」に対する「応答(数値情報)」は「数字情報(カテゴライズ型)」ではなく「数値スカラー」を入力すべきです。
もし上記想定ではなく、例えば手書き文字の回転角度別にフォルダ分類されフォルダ名に回転角度を付けたデータ群をImageDatastore関数で読み込んだのであれば、下記の例のように回帰タスクを用いるべきですが、「応答(回転角度)」が数値スカラーではなくカテゴライズ型になってしまうので、先の回答の様な方法で数値スカラーに変換する必要があります。
  2 个评论
Atsushi Ueno
Atsushi Ueno 2022-7-5
質問文に「プログラムの入力データは何か」「プログラムの目的は何か」が明示されていません。
あれこれと想像を膨らませ「こうかもしれない」「いやこうかもしれない」と回答するのも大変です。
takmakome
takmakome 2022-7-7
以後気を付けます

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 イメージを使用した深層学習 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!