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

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

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

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

Q&A

0回答

197閲覧

tensorflowのLSTMネットワークをフィルタのように利用したいです

engineer8

総合スコア6

Python

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

0グッド

0クリップ

投稿2018/06/14 07:15

前提・実現したいこと

tensorflowのLSTMを用いてリアルタイムでフィルタ処理を行いたいのですがうまくできません。
具体的には以下のコードで中間層の情報をインスタンス変数として保存し、cell(x[:, t, :], self.state) によってLSTMの出力をサンプリング毎に取得できないかと考えました。しかしエラーは出ませんが def value()を実行するたびに self.stateが初期状態に戻されてしまっているようです。

該当のソースコード

python

1 def inference(x, n_batch, maxlen=None, n_hidden=None, n_out=None): 2 def weight_variable(shape, name=None): 3 initial = tf.truncated_normal(shape, stddev=0.01) 4 return tf.Variable(initial, name=name) 5 6 def bias_variable(shape, name=None): 7 initial = tf.zeros(shape, dtype=tf.float32) 8 return tf.Variable(initial, name=name) 9 #cell = tf.contrib.rnn.BasicRNNCell(n_hidden) 10 cell1 = tf.contrib.rnn.LSTMCell(n_hidden, use_peepholes=True, forget_bias=1.0) 11 cell2 = tf.contrib.rnn.LSTMCell(n_hidden, use_peepholes=True, forget_bias=1.0) 12 cell3 = tf.contrib.rnn.LSTMCell(n_hidden, use_peepholes=True, forget_bias=1.0) 13 cell = tf.contrib.rnn.MultiRNNCell([cell1, cell2, cell3]) 14 self.initial_state = cell.zero_state(n_batch, tf.float32) 15 16 V = weight_variable([n_hidden, n_out], name='W_out') 17 tf.summary.histogram('W_out', V) 18 c = bias_variable([n_out], name='b_out') 19 tf.summary.histogram('b_out', c) 20 if self.flag: 21 self.state = self.initial_state 22 self.flag = False 23 if self.maxlen != 1: 24 self.state = self.initial_state 25 26 outputs = [] # 過去の隠れ層の出力を保存 27 #with tf.variable_scope('LSTM'): 28 for t in range(maxlen):#学習時以外は maxlen = 1 29 #if t > 0: 30 #tf.get_variable_scope().reuse_variables() 31 (cell_output, self.state) = cell(x[:, t, :], self.state) 32 ######## 33 outputs.append(tf.matmul(cell_output, V) + c) 34 y = tf.concat(outputs,1) 35 y = tf.reshape(y,[n_batch,maxlen,2]) 36 return y 37 38 39 self.y = inference(self.x, self.n_batch, maxlen=self.maxlen, n_hidden=self.n_hidden, n_out=self.n_out) 40 41 42  def value(self, X, batch_size=1): 43 y_ = self.y.eval(session=self.sess, feed_dict={ 44 self.x: X, 45 self.n_batch: batch_size 46 }) 47 return y_

試したこと

ここに問題に対して試したことを記載してください。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

mkgrei

2018/06/14 10:37

これだけだとコードが動かないので、インタプリタになって人が頑張らないといけないのですが…回答がつきにくくなると思います。
engineer8

2018/06/17 09:03

全部書いた方が良いのですね、次回から気をつけます。別のライブラリを使ったらできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問