0
学習目的のために、Tensorflowで独自のLSTMモデルを構築したいと考えています。問題は、特定のタイムステップの状態が以前のタイムステップの状態を使用して初期化されるような方法でトレーニングする方法です。 Tensorflowにこれの仕組みがありますか?Tensorflowの次の状態として変数の最後の状態を使用する方法は?
class Lstm:
def __init__(self, x, steps):
self.initial = tf.placeholder(tf.float32, [None, size])
self.state = self.initial
for _ in range(steps):
x = self.layer_lstm(x, 100)
x = self.layer_softmax(x, 10)
self.prediction = x
def step_lstm(self, x, size):
stream = self.layer(x, size)
input_ = self.layer(x, size)
forget = self.layer(x, size, bias=1)
output = self.layer(x, size)
self.state = stream * input_ + self.state * forget
x = self.state * output
return x
def layer_softmax(self, x, size):
x = self.layer(x, size)
x = tf.nn.softmax(x)
return x
def layer(self, x, size, bias=0.1):
in_size = int(x.get_shape()[1])
weight = tf.Variable(tf.truncated_normal([in_size, size], stddev=0.1))
bias = tf.Variable(tf.constant(bias, shape=[size]))
x = tf.matmul(x, weight) + bias
return x