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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

PyCharm

エディター・開発ツール

Q&A

0回答

274閲覧

RNNでのラベル付きデータの入力

Horin

総合スコア9

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

PyCharm

エディター・開発ツール

0グッド

0クリップ

投稿2018/09/26 06:04

センサーから取得したデータをRNNに入力し、2つのラベルに分類をしたいです。
データはExcelでセンサーの種類64種類、各1000フレーム程取得されたものが44人分のデータがあります。
これをAとBのラベルを付けたいのですがバッチの取り方、ラベルのつけ方がわかりません。

コードはゼロから作るDeepLearning2を参考にしました。
パープレキシティの評価とありますがまずは入力を行いたいので無視しています。
教師は(0,1)(1,0)の2つのラベルにし
データの形式は画像の形ですこれが22×2ラベル分ありますイメージ説明

python

1# coding: utf-8 2import sys 3sys.path.append('..') 4import matplotlib.pyplot as plt 5import numpy as np 6from optimizer import SGD 7#import dataset 8from simple_rnnlm import SimpleRnnlm 9import pandas as pd 10 11 12# ハイパーパラメータ設定 13batch_size = 30 # ストロークの半分 60じゃだめ言われたから 14sensor = 64 15hidden_size = 15 16time_size = 5 # Truncated BPTTの展開する時間サイズ 17lr = 0.1 # 学習率 18max_epoch = 100 19 20# 学習データの読み込み 21data = pd.read_csv('tt.csv') 22dataframe = np.array(data) 23 24label = 2 25data_size = 1000 # とりあえず一人分だから 26 27xs = dataframe 28teach = pd.read_csv('testteach.csv') 29ts =teach 30print(ts.shape) 31 32# 学習時に使用する変数 33max_iters = data_size // (batch_size * time_size) 34time_idx = 0 35total_loss = 0 36loss_count = 0 37ppl_list = [] 38 39# モデルの生成 40model = SimpleRnnlm(label, sensor, hidden_size) 41optimizer = SGD(lr) 42 43 44# ミニバッチの各サンプルの読み込み開始位置を計算 45jump = (data_size - 1) // batch_size 46offsets = [i * jump for i in range(batch_size)] 47 48for epoch in range(max_epoch): 49 for iter in range(max_iters): 50 # ミニバッチの取得 51 batch_x = np.empty((batch_size, time_size, sensor), dtype='i') 52 53 batch_t = np.empty((batch_size, time_size, label), dtype='i') 54 #print(batch_t.shape) 30, 5 55 for t in range(time_size): 56 for i, offset in enumerate(offsets): 57 batch_x[i, t, :] = xs[(offset + time_idx) % data_size, :] 58 #print(batch_x[i, t]) 59 batch_t[i, t, :] = ts[(offset + time_idx) % data_size] 60 print(batch_t.shape) 61 print(batch_t[i, t, :]) 62 time_idx += 1 63""" 64 # 勾配を求め、パラメータを更新 65 loss = model.forward(batch_x, batch_t) 66 model.backward() 67 optimizer.update(model.params, model.grads) 68 total_loss += loss 69 loss_count += 1 70 71 # エポックごとにパープレキシティの評価 72 ppl = np.exp(total_loss / loss_count) 73 print('| epoch %d | perplexity %.2f' 74 % (epoch+1, ppl)) 75 #print(len(corpus)) 76 ppl_list.append(float(ppl)) 77 total_loss, loss_count = 0, 0 78 79# グラフの描画 80x = np.arange(len(ppl_list)) 81plt.plot(x, ppl_list, label='train') 82plt.xlabel('epochs') 83plt.ylabel('perplexity') 84plt.show() 85"""

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問