CNNを用いた回帰用のデータセットの構築について

こんにちは。小熊塁と申します。
回帰用のデータセットを作りたいのですが、大量のイメージを4-D doubleなデータにする際に
D=zeros(480,750,1,1000);
for i=1:1000
I=imread('102001456.png');
D(:,:,:,i)=I;
end
という風なコードを使用するつもりなのですが、3行目のimreadに対する入力を、任意のフォルダにある画像を順に読み込むようにしたいのですが、やり方が分かりません。

 采纳的回答

Atsushi Ueno
Atsushi Ueno 2021-11-5

1 个投票

folder_name = pwd; % これは現在のフォルダにある画像を探す例
imds = imageDatastore(folder_name);
D=zeros(480,750,1,1000);
for i=1:numel(imds.Files)
I=imread(imds.Files{i});
D(:,:,:,i)=I;
end
気になる点など:
  • PCのメモリに入りきらない位大量のイメージデータを扱う為にはイメージデータストアを使うべきです
  • (上記プログラムでもイメージデータストアを使いましたが、画像ファイル名の参照にしか使っていません)
  • 4-D doubleなデータにするには、全てのイメージが同一サイズでなければなりません
  • (サイズに応じて埋め合せる処理か、サイズ違いの3-D doubleなデータをセル配列に格納する処理が必要です)

3 个评论

塁 小熊
塁 小熊 2021-11-8
返信ありがとうございます。
上記のコードで私の環境でも理想的な形になってくれました。
追加で質問したいのですが、このようにして作った4-D doubleデータとラベルを用意した状態から、学習データ:検証データ=7:3に分割は出来るのでしょうか?
それとも別々にデータを用意するしかないのでしょうか。
Atsushi Ueno
Atsushi Ueno 2021-11-8
编辑:Atsushi Ueno 2021-11-8
学習データ:検証データ=7:3に分割は出来るのでしょうか?⇒出来ます
現在の環境で4-D doubleデータをどのように扱うかで、ご自分の自由に分割する事が出来ます。
下記ドキュメントにおいて、ラベル付き動画データベース(CamVid Dataset)を取り込み、partitionCamVidData()と名付けられた関数でデータをシャッフルしながら各用途(学習用:60%、検証用:20%、テスト用:20%)に振り分けています。参考になるのではないでしょうか?
塁 小熊
塁 小熊 2021-11-9
返信ありがとうございます。
参考になるドキュメントの共有もありがとうございます!
また分からない箇所があったら別途質問を作成したいと思います。

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Deep Learning Toolbox 的更多信息

产品

版本

R2021a

Community Treasure Hunt

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

Start Hunting!