我正在使用tf估计器api来训练LSTM模型。我将model_fn
定义如下。训练模型后,我想获得张量“ attention_a”。它不是变量。因此,我无法使用get_variable_value()
来获取它。我尝试使用tf.summary.tensor_summary("alpha", a)
。但是在TensorBoard中找不到张量。
有什么想法可以在训练后恢复张量吗?
def bilstm_fn(features, labels, mode, params):
...
# Attention
with tf.variable_scope("Attention", reuse=tf.AUTO_REUSE):
W = tf.get_variable("W", [n_units*2, attn_size])
b = tf.get_variable("b", [attn_size])
e = tf.tanh(tf.tensordot(dropout1, W, axes=1) + b)
a = tf.nn.softmax(e, name="attention_a")
r = tf.multiply(a, dropout1)
...
if mode == tf.estimator.ModeKeys.TRAIN:
optimizer = tf.train.AdamOptimizer()
train_op = optimizer.minimize(loss=loss,
global_step=tf.train.get_global_step())
return tf.estimator.EstimatorSpec(mode=mode, loss=loss,
train_op=train_op)
答案 0 :(得分:0)
您可以使用tf.get_tensor_by_name()获得所需的那个。