csvデータシートの抽出

11 visualizzazioni (ultimi 30 giorni)
Jo Sasaki
Jo Sasaki il 16 Ago 2018
Commentato: Hirokazu Tanaka il 18 Ago 2018
現在CNN入力層にcsvの一次元データを適用した解析を行っています。
csvを読み込む関数をreadDatastoreCSVと定義し
function data = readDatastoreCSV(filename)
data = csvread(filename);
data = reshape(data, [1 x 1 1]); %xはデータの数
と定義しています。 この関数はcsvファイルのA列のみ使用した関数なのですが、今回使用するcsvファイルのデータシートは1~2401行、A~OI列(縦2401横399)まで存在するcsvを扱います。
このcsvデータのA列、B列...を各々1データとして取り扱いたいのですが、関数readDatastoreでどういった処理を行えばよいでしょうか?

Risposta accettata

Hirokazu Tanaka
Hirokazu Tanaka il 17 Ago 2018
「このcsvデータのA列、B列...を各々1データとして取り扱いたい」というところもう少し詳しく教えてください。
CNNということはデータは imageDatastore で処理されてますか?imageDatastore でカスタムの読み込み関数を定義して、csv ファイルを読み込んでいるということでしょうか?
また、csvファイルには 399 列のデータがあり、それぞれを別々の入力データとして学習させることが目的ですか?例えば、1つのファイルを列毎に別々の csvファイル 399個に分割して学習させる必要があるかもしれないところを、カスタムの読み込み関数をうまく定義して避けたいということでしょうか?
  2 Commenti
Jo Sasaki
Jo Sasaki il 17 Ago 2018
readDatastoreCSVとは、CNNにおけるimageDatastore内のReadFcn: @readDatastoreImageの部分で画像の代わりにcsvデータを読み込むための関数です。
いままでは加速度計の値を読み込んでいたためエクセルファイルのA列にのみ数値が存在していました。 ですが、波形処理後のデータを入力データとして扱うため今回使用するcsvデータは399列のデータが存在しています。 この399列のデータそれぞれ1列ずつ抽出してを入力層に入力させたいと考えています。
なので、 csvファイルには 399 列のデータがあり、それぞれを別々の入力データとして学習させることが目的ですか?例えば、1つのファイルを列毎に別々の csvファイル 399個に分割して学習させる必要があるかもしれないところを、カスタムの読み込み関数をうまく定義して避けたいということでしょうか?
この目的であっています。 こちらでcsvの分割するのは、データの数が多いのでこの関数の中で完結させたいと考えています。 この方法以外になにかいい手法や提案がありましたら教えていただければありがたいです。
Hirokazu Tanaka
Hirokazu Tanaka il 17 Ago 2018
Modificato: Hirokazu Tanaka il 17 Ago 2018
imageDatastore の今の機能では難しそうですね・・。 ファイルの分割自体は比較的単純なスクリプトで実現(読み込んで、1列毎に保存)できると思いますので、まずは分割してしまうのが近道かとは思いますが、どうでしょうか。

Accedi per commentare.

Più risposte (1)

Jo Sasaki
Jo Sasaki il 17 Ago 2018
Modificato: Jo Sasaki il 17 Ago 2018
難しそうですか。。。 いまエクセルのマクロで分割コードを実行して、各列のcsvを連続で保存していたのですがどうしても遅さが気になってしまいますね。 こういった各列のデータを連続でcsvとして出力は可能でしょうか? 参考になるドキュメントなどあったら教えていただきたいです。。。
  3 Commenti
Jo Sasaki
Jo Sasaki il 18 Ago 2018
実践したところMATLAB約25秒、マクロ10分以上と大きく差がでました。 マクロ自体最適化されたコードかどうかも微妙なのですが、断然MATLABのほうが早そうですね。 ご回答ありがとうございました。
Hirokazu Tanaka
Hirokazu Tanaka il 18 Ago 2018
良かったです。そんなに差が出るもんなんですね。

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!