質問: csvデータの畳み込みニューラルネットワーク(cnn)について csvデータに対しcnn学習を行う際csvデータの読み込みとラベル付けはどのように行うのですか? csvデータの中身は音データをサンプリング周波数48khzで収録したもので1×960,000サンプルのcsvデータとして保存されたものです。 この中から4,800サンプルを画像認識でいう1データ(1画像)として連続で抽出しcnn学習を行いたいです。
回答: * csv から取得した数値データの使用について 最新のバージョンである r2017b では、画像以外の数値データは で取り込むことができますが、この関数で取り込んだデータに対して convolution2dlayer 関数を適用する機能が現在のところありません。 代わりに、 関数を使用して読み込み、それに対して を適用してみてください。 参考: * データの一部を抜き出す方法について 関数を使用すると、csv データのデータ抽出部分を指定することができます。もしスライディングウィンドウを使用しない場合は datastore の readsize プロパティを 4800 に指定して、ループを使用して読み込みます。 例えば以下のようなコードになります。(最終的に変数 data に4800x22 のデータが入っています。) この変数を trainnetwork 関数の入力引数とすればよいかと思います。 ds = datastore('airlinesmall.csv', ... 'treatasmissing','na'); ds.selectedvariablenames = {'deptime'}; ds.readsize = 4800; preview(ds) x = []; % i=1; % while hasdata(ds) for i=1:200 t = read(ds); data(:,i) = t; % i=i+1; end 参考: データストア入門 * ラベルについて ラベル情報は別の変数として定義しておき、学習のための関数 trainnetwork を実行するときに入力として与えます。