csvの一次元データ​に対する畳込みニュー​ラルネットワークの入​力データのばらつきに​ついて

조회 수: 5 (최근 30일)
Jo Sasaki
Jo Sasaki 2018년 12월 10일
댓글: Jo Sasaki 2018년 12월 20일
音データのcsvデータに対し畳み込みニューラルネットワークを行っています。
CNNレイヤーに対応したデータストアはimageDatastoreしかないので、下記の読み込み関数を定義して読み込みを行っています。
function data = readDatastoreCSV(filename)
data = csvread(filename);
data = reshape(data, [1 1200 1 1]);
この場合読み込み関数で読み込むデータは1200データとしなければなりませんが、今手元にある入力データは1100や1400などばらつきがある状態です。
ですので、csvデータに対し0パディングのようにデータの水増しを行いたいと思っています。
例えば、1200データが存在するcsvに対し300データ「0」を末尾に加えて、この作業をすべてのデータ数を1500として扱おうと考えています。
こういったcsvデータの水増しはMATLABで可能でしょうか?
もしくは、MATLABのcnnの関数内でデータの数を合わせてくれる機能などが存在しているのでしょうか?
読み込み関数内で行ってもいいですし、csvデータのみ編集でもよいのでご教授いただければ幸いです。

채택된 답변

Kazuya
Kazuya 2018년 12월 11일
편집: Kazuya 2018년 12월 11일
データ型など注意する必要があるかもしれませんが、
function data = readDatastoreCSV(filename)
tmp = csvread(filename); % データ読み込み(N < 1500が前提)
N = length(tmp); % 読み取ったデータ要素数確認
data = zeros(1500,1); % 全て 0 のベクトル定義
data(1:N,1) = tmp; % filename のデータをコピー
data = reshape(data, [1 1500 1 1]);
とすれば、とりあえず結果出てくる data は 1500要素で揃います。
  댓글 수: 5
Kazuya
Kazuya 2018년 12월 18일
分割後の csv はどれも csvread 関数単体で実行しても読み取れないということですか?先日の書き込みからはすべてが読み取れないわけではなさそうでしたが。
  • 読み取れる csv ファイルと読み取れない csv ファイルの特定
  • 同じ csv ファイルでも読み取れる時と読み取れない時があるのかどうか
の2点を確認せずに、いろいろ試しても解決(原因の理解)にはつながらないですよー。うっかり動くこともあるとは思いますが。
Jo Sasaki
Jo Sasaki 2018년 12월 20일
読み取れるCSVは私がマクロで分割したもということに先日気づきました。
結局しっかりとした根拠は見つからなかったのですがフリーの分割ツールで分割することはNGだという結論に至りました。
なので、MATLABでcsv分割のコードを作成し分割し学習を行うことに成功しました。
ご丁寧な対応ありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Preprocess Data for Deep Neural Networks에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!