質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

Q&A

0回答

253閲覧

TensorFlow -時系列データに関する質問-

motoki.m

総合スコア5

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

0グッド

0クリップ

投稿2020/01/30 09:42

前提・実現したいこと

時系列データに対して1次元畳み込みを行い、LSTMを用いて多クラス分類を行いたい。
下記の論文のFig.1に示されているネットワーク構造を一部改良したいと考えています。
https://arxiv.org/pdf/1703.04046.pdf

発生している問題・エラーメッセージ

問題になる以前の質問なのですが、

  1. 512Hzで1時間10分サンプリングしたデータ(入力)に対して0.05Hzで1時間10分サンプリングしたラベルが存在する(同様のデータが10個あります)
  2. 入力データに対して1次元畳み込みを行い、ラベルと同じサンプリングで結果を出力したい(シーケンス出力を実装したい)
  3. 1つずつのデータに対して時系列性を担保しながら学習を進めたい(データセットの構築がわからないです)

試したこと

上記のデータ1つに対してLSTMを実装してみました。
しかし、このデータは1時間10分のデータを20sec毎にデータを分割し、その中の時系列性を学習していると思います。
これだと各ラベル毎の学習になってしまうと思っているのですが、いかがでしょうか。

Python

1import numpy as np 2import matplotlib.pyplot as plt 3import tensorflow as tf 4import csv 5import datetime 6 7# GPU設定 8config = tf.compat.v1.ConfigProto() 9config.gpu_options.allow_growth = True 10session = tf.compat.v1.InteractiveSession(config=config) 11 12ecgData = [] 13sleepData = [] 14with open('./data/ECG.csv') as f: 15 reader = csv.reader(f) 16 for row in reader: 17 ecgData.append(float(row[0])) 18 19with open('./data/label.csv',encoding="utf-8-sig") as f: 20 reader = csv.reader(f) 21 for row in reader: 22 labelData.append(int(row[0])-1) 23 24# データ長の統一 25# ecgDataは512Hz * 70min * 60secで2150400個 26ecgData = ecgData[1:2150401] 27 28# labelデータは0.05Hz * 70min * 60secで210個 29# 初期値が入っているのでそのデータは無視 30labelData = labelData[1:212] 31 32# numpy配列に変換 33ecgData = np.array(ecgData) 34labelData = np.array(labelData) 35 36train_X = np.reshape(ecgData, (-1, 512*20, 1)) 37train_Y = np.identity(4)[labelData] 38 39# モデルの作成 40model = tf.keras.models.Sequential() 41model.add(tf.keras.layers.LSTM(10, input_shape = (train_X.shape[1], train_X.shape[2]), return_sequences=False, activation='tanh')) 42model.add(tf.keras.layers.Dense(4)) 43model.add(tf.keras.layers.Activation('softmax')) 44 45model.compile(loss = "mean_squared_error", optimizer='adam') 46 47model.summary() 48epochs = 100 49history = model.fit(train_X, train_Y, validation_split=0.1, epochs=epochs,callbacks=[tensorboard_callback]) 50

補足情報(FW/ツールのバージョンなど)

Windows 10
Python 3.6
tensorflow-gpu 2.1.0
CUDA v10.1
cuDNN 7.6.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aokikenichi

2020/07/20 14:42

「時系列性を担保」とはどういうことでしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問