def _get_initial_lstm(self, features):
with tf.variable_scope('level1/initial_lstm'):
features_mean = tf.reduce_mean(features, 1)
w2_init = np.transpose(self.model_load['/init_network/weight2'][:], (1, 0))
b2_init = self.model_load['/init_network/bias2'][:]
w_1_ = np.transpose(self.model_load['/init_network/weight1'][:], (1, 0))
w_1 = tf.get_variable('w_w1', initializer=w_1_)
b_1 = tf.get_variable('w_b1', initializer=self.model_load['/init_network/bias1'][:])
h1 = tf.nn.relu(tf.matmul(features_mean, w_1) + b_1)
# todo: this dropout can be added later
# if self.dropout:
# h1 = tf.nn.dropout(h1, 0.5)
w_h = tf.get_variable('w_h', initializer=w2_init[:, self.H:])
b_h = tf.get_variable('b_h', initializer=b2_init[self.H:])
h = tf.nn.tanh(tf.matmul(h1, w_h) + b_h)
w_c = tf.get_variable('w_c', initializer=w2_init[:, :self.H])
b_c = tf.get_variable('b_c', initializer=b2_init[:self.H])
c = tf.nn.tanh(tf.matmul(h1, w_c) + b_c)
return c, h
评论列表
文章目录