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

1 vue (au cours des 30 derniers jours)
Jo Sasaki
Jo Sasaki le 10 Déc 2018
Commenté : Jo Sasaki le 20 Déc 2018
音データの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データのみ編集でもよいのでご教授いただければ幸いです。

Réponse acceptée

Kazuya
Kazuya le 11 Déc 2018
Modifié(e) : Kazuya le 11 Déc 2018
データ型など注意する必要があるかもしれませんが、
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 commentaires
Kazuya
Kazuya le 18 Déc 2018
分割後の csv はどれも csvread 関数単体で実行しても読み取れないということですか?先日の書き込みからはすべてが読み取れないわけではなさそうでしたが。
  • 読み取れる csv ファイルと読み取れない csv ファイルの特定
  • 同じ csv ファイルでも読み取れる時と読み取れない時があるのかどうか
の2点を確認せずに、いろいろ試しても解決(原因の理解)にはつながらないですよー。うっかり動くこともあるとは思いますが。
Jo Sasaki
Jo Sasaki le 20 Déc 2018
読み取れるCSVは私がマクロで分割したもということに先日気づきました。
結局しっかりとした根拠は見つからなかったのですがフリーの分割ツールで分割することはNGだという結論に至りました。
なので、MATLABでcsv分割のコードを作成し分割し学習を行うことに成功しました。
ご丁寧な対応ありがとうございました。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Preprocess Data for Deep Neural Networks dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!