首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在运行时在Tensorflow中查看或保存一个张量?

如何在运行时在Tensorflow中查看或保存一个张量?
EN

Stack Overflow用户
提问于 2016-04-04 22:22:58
回答 1查看 328关注 0票数 2

我有个模特:

代码语言:javascript
运行
复制
def __init__(params):
    seq2seq() {
        outputs, states = rnn.rnn(...)
    } 

def step()
    ...
    session.run(output_feed, input_feed)

这一模式是通过以下方式来调用的:

代码语言:javascript
运行
复制
with tf.Session as sess:
    model = create_model(sess) (does __init__, loads checkpoint)
    inputs = ...
    outputs = model.step(sess, inputs)

如何打印/保存/查看rnn.rnn()返回的“状态”?

我试过tf.Print(状态-1,[状态-1]),它给了我张量的形状。

代码语言:javascript
运行
复制
Tensor("model/seq2seq/Print:0", shape=TensorShape([Dimension(None), Dimension(4096)]), dtype=float32)

我尝试了stats-1.val(),它提供了一系列错误,如:

代码语言:javascript
运行
复制
  Compute status: Invalid argument: 
  You must feed a value for placeholder tensor 'encoder1' with dtype int32   

我还尝试将var添加到模型中以返回它,但这没有起作用:

代码语言:javascript
运行
复制
 def __init__():
     ...
     self.state = state 

 def step():
     output_feed.append(self.state)
     result = session.run(output_feed, input_feed)
     return result
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-05 08:57:30

为了在eval方法中看到张量的值,您不能依赖于图中的任何占位符。在本例中,错误消息告诉您states[-1]依赖于'encoder1'

您可以在占位符的值中调用seesion.run和feed,如下所示:

代码语言:javascript
运行
复制
session.run(states[-1], feed_dict={encoder1:[#values for encoder1 here
                                            ]})

其中encoder1是占位符对象。这将返回states[-1]的值,然后可以序列化以保存该值。

在您的具体情况下,encoder1可能是rnn中的内部占位符,因此您可能希望运行如下所示:

代码语言:javascript
运行
复制
_, state_values = session.run([output_feed, states[-1]], input_feed)

若要在运行变量的上下文中获取变量的值,请执行以下操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36413949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档