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

3 ビュー (過去 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 Center および File ExchangePreprocess Data for Deep Neural Networks についてさらに検索

Community Treasure Hunt

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

Start Hunting!