MATLAB Answers

Tamu
0

trainNetwo​rkで大量のイメージ​を学習させる方法はあ​りますでしょうか?

Asked by Tamu
on 17 Oct 2019
Latest activity Commented on by Tamu
on 18 Oct 2019
trainNetworkを用いた学習についての質問になります。
下記のURLのように「高さ、幅、チャンネル数、データ数の4次元配列」を入力としているのですが、
データ数を大きくした場合に最大配列サイズの設定を超えているとエラーが生じます。
データ数を分割して複数回学習をする方法も試みたのですが、
データ数の大きい場合にも一度で学習可能な方法がございましたら是非教えて頂きたいです。
よろしくお願いいたします。

  0 Comments

Sign in to comment.

1 Answer

Answer by Kenta Itakura on 17 Oct 2019
 Accepted Answer

高さ、幅、とあるので対象は画像でしょうか?それならばひとまずは各画像のサイズを下げて、
望む精度がでるか試してみてはどうでしょうか。もし、それで精度が不十分であれば他の方法を考えれば良いと思います。
訓練時ではなく、4D配列のデータを用意するときにメモリが足りなくなるのですよね?
おそらく対処の方法は対象によってくるので、データの種類や枚数、1データ当たりのサイズ、PCのメモリ、データの例などできる限り詳しく記述いただけると幸いです。

  3 Comments

Tamu
on 17 Oct 2019
ご回答ありがとうございます。
説明不足で申し訳ありません。
データは画像ではなく、2次元の数値配列になります。
サイズは12×12×7×5000,000(12×12の2次元数値配列、7チャンネル、データ数500万)です。
ご記述頂いた通り、上記の4D配列を用意する際にメモリが不足している状況です。
trainNetworkではなく配列に関する質問になりますが、
教えて頂けると幸いです。
よろしくお願いいたします。
【補足】
PCのメモリは4.0GBになります。
Kenta Itakura on 18 Oct 2019
ご返信ありがとうございます。500万とは非常に大規模ですね。ちなみに
このデータはどのように取得されたのでしょうか?ご自身で取得されたのか、それとも
なにかのデータセットからでしょうか?
例えば、すぐできるものとして、4D配列をdoubleではなく、single型で入れるのはどうでしょうか。メモリ消費が半分になります。また、訓練、検証、テストにわけるとおもうので、訓練データだけなら約7割くらいにデータが減らせるはずです。
または、データストアを使えば解決すると思いますが、どのような形でデータをお持ちかはわからないので、これ以上はわかりません。ひとまず下を試す価値は十分あると思うので、またどのようになったか教えていただけると幸いです。
Tamu
on 18 Oct 2019
ありがとうございます。
データは数値配列を生成するプログラムを作成し、自ら取得したものです。
教えて頂いた方法で試させていただきます!

Sign in to comment.