我想在我的seq2seq模型中获取GRUCell活动。基本上使用translate.py示例,我试图看看细胞是如何被激活的。我尝试了几种不同的尝试打印张量,但没有运气
test = tf.get_default_graph().get_tensor_by_name("model_with_buckets/embedding_attention_seq2seq/RNN/MultiRNNCell_35/Cell2/GRUCell/add:0")
print(test.eval())
我一直收到这个错误:
InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'encoder0' with dtype int32
[[Node: encoder0 = Placeholder[dtype=DT_INT32, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
我已尝试创建编码器0'变量并将其传递给eval(feed_dict=encoder)
encoder = tf.placeholder(tf.int32, (len(encoder_inputs), 1),'encoder0')
enc_data = tf.Variable(encoder, trainable=False, collections=[])
sess.run(enc_data.initializer, feed_dict={encoder:encoder_inputs})
答案 0 :(得分:0)
您正在创建一个与seq2seq模型使用和提供它的无关的新占位符,因此seq2seq仍然没有值。
不是按名称获取张量,而是更改seq2seq代码以返回对张量的引用可能更好。然后你可以在正常的session.run调用中获取它,并做正确的事情。